1+ import base64
2+ import json
13import unittest
24import datetime as dt
5+ from unittest .mock import patch , MagicMock
36
47from uid2_client import IdentityMapClient , get_datetime_utc_iso_format
58
69
710class 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