Skip to content

Commit f4802b4

Browse files
authored
Merge pull request #51 from IABTechLab/ccm-UID2-3497-implement-unittest
UID2-3497: Add unit tests to test request of getting identity buckets
2 parents 3d31c4d + d0c5db7 commit f4802b4

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

examples/sample_get_identity_buckets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# this sample client takes timestamp string as input and generates an IdentityBucketsResponse object which contains
88
# a list of buckets, the timestamp string in the format YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]],
9-
# for example: UTC: 2024-07-02, 2024-07-02T14:30:15.123456+00:00 and EST: 2024-07-02T14:30:15.123456-05:00
9+
# for example: local timezone: 2024-07-02, UTC: 2024-07-02T14:30:15.123456+00:00, EST: 2024-07-02T14:30:15.123456-05:00
1010

1111
def _usage():
1212
print('Usage: python3 sample_get_identity_buckets.py <base_url> <api_key> <client_secret> <timestamp>'

tests/test_identity_map_client_unit_tests.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
import base64
2+
import json
13
import unittest
24
import datetime as dt
5+
from unittest.mock import patch, MagicMock
36

47
from uid2_client import IdentityMapClient, get_datetime_utc_iso_format
58

69

710
class IdentityMapUnitTests(unittest.TestCase):
8-
identity_map_client = IdentityMapClient("UID2_BASE_URL", "UID2_API_KEY", "wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=")
11+
UID2_SECRET_KEY = base64.b64encode(b"UID2_CLIENT_SECRET").decode()
12+
identity_map_client = IdentityMapClient("UID2_BASE_URL", "UID2_API_KEY", UID2_SECRET_KEY)
913

1014
def test_identity_buckets_invalid_timestamp(self):
1115
test_cases = ["1234567890",
@@ -30,3 +34,23 @@ def test_get_datetime_utc_iso_format_timestamp(self):
3034
iso_format_timestamp = get_datetime_utc_iso_format(timestamp)
3135
self.assertEqual(expected_timestamp, iso_format_timestamp)
3236

37+
@patch('uid2_client.identity_map_client.make_v2_request')
38+
@patch('uid2_client.identity_map_client.post')
39+
@patch('uid2_client.identity_map_client.parse_v2_response')
40+
def test_identity_buckets_request(self, mock_parse_v2_response, mock_post, mock_make_v2_request):
41+
expected_req = b'{"since_timestamp": "2024-07-02T14:30:15.123456"}'
42+
test_cases = ["2024-07-02T14:30:15.123456+00:00", "2024-07-02 09:30:15.123456-05:00",
43+
"2024-07-02T08:30:15.123456-06:00", "2024-07-02T10:30:15.123456-04:00",
44+
"2024-07-02T06:30:15.123456-08:00", "2024-07-02T23:30:15.123456+09:00",
45+
"2024-07-03T00:30:15.123456+10:00", "2024-07-02T20:00:15.123456+05:30"]
46+
mock_req = b'mocked_request_data'
47+
mock_nonce = 'mocked_nonce'
48+
mock_make_v2_request.return_value = (mock_req, mock_nonce)
49+
mock_response = MagicMock()
50+
mock_response.read.return_value = b'{"mocked": "response"}'
51+
mock_post.return_value = mock_response
52+
mock_parse_v2_response.return_value = b'{"body":[],"status":"success"}'
53+
for timestamp in test_cases:
54+
self.identity_map_client.get_identity_buckets(dt.datetime.fromisoformat(timestamp))
55+
called_args, called_kwargs = mock_make_v2_request.call_args
56+
self.assertEqual(expected_req, called_args[2])

0 commit comments

Comments
 (0)