|
9 | 9 | "customer_uuid": "cus_00000000-0000-0000-0000-000000000000", |
10 | 10 | "data_source_uuid": "ds_00000000-0000-0000-0000-000000000000", |
11 | 11 | "customer_external_id": "external_001", |
| 12 | + "external_id": "contact_external_id_001", |
12 | 13 | "first_name": "First name", |
13 | 14 | "last_name": "Last name", |
14 | 15 | "position": 9, |
|
25 | 26 | "uuid": "con_00000000-0000-0000-0000-000000000000", |
26 | 27 | "customer_uuid": "cus_00000000-0000-0000-0000-000000000000", |
27 | 28 | "data_source_uuid": "ds_00000000-0000-0000-0000-000000000000", |
| 29 | + "external_id": "contact_external_id_001", |
28 | 30 | "first_name": "First name", |
29 | 31 | "last_name": "Last name", |
30 | 32 | "position": 9, |
|
42 | 44 |
|
43 | 45 | allContacts = {"entries": [contact], "cursor": "cursor==", "has_more": False} |
44 | 46 |
|
| 47 | +contactWithoutExternalId = {k: v for k, v in contact.items() if k != "external_id"} |
| 48 | + |
| 49 | +contactWithNullExternalId = { |
| 50 | + **contact, |
| 51 | + "external_id": None, |
| 52 | +} |
| 53 | + |
| 54 | +createContactWithNullExternalId = { |
| 55 | + **createContact, |
| 56 | + "external_id": None, |
| 57 | +} |
| 58 | + |
45 | 59 |
|
46 | 60 | class ContactTestCase(unittest.TestCase): |
47 | 61 | """ |
@@ -93,6 +107,30 @@ def test_create(self, mock_requests): |
93 | 107 | self.assertEqual(mock_requests.last_request.qs, {}) |
94 | 108 | self.assertEqual(mock_requests.last_request.json(), createContact) |
95 | 109 |
|
| 110 | + @requests_mock.mock() |
| 111 | + def test_create_with_null_external_id(self, mock_requests): |
| 112 | + mock_requests.register_uri( |
| 113 | + "POST", "https://api.chartmogul.com/v1/contacts", status_code=200, json=contactWithNullExternalId |
| 114 | + ) |
| 115 | + |
| 116 | + config = Config("token") |
| 117 | + result = Contact.create(config, data=createContactWithNullExternalId).get() |
| 118 | + self.assertEqual(mock_requests.call_count, 1, "expected call") |
| 119 | + self.assertEqual(mock_requests.last_request.json(), createContactWithNullExternalId) |
| 120 | + self.assertIsNone(result.external_id) |
| 121 | + |
| 122 | + @requests_mock.mock() |
| 123 | + def test_create_without_external_id(self, mock_requests): |
| 124 | + mock_requests.register_uri( |
| 125 | + "POST", "https://api.chartmogul.com/v1/contacts", status_code=200, json=contactWithoutExternalId |
| 126 | + ) |
| 127 | + |
| 128 | + config = Config("token") |
| 129 | + result = Contact.create(config, data=createContactWithNullExternalId).get() |
| 130 | + self.assertEqual(mock_requests.call_count, 1, "expected call") |
| 131 | + self.assertEqual(mock_requests.last_request.json(), createContactWithNullExternalId) |
| 132 | + self.assertIsNone(result.external_id) |
| 133 | + |
96 | 134 | @requests_mock.mock() |
97 | 135 | def test_merge(self, mock_requests): |
98 | 136 | mock_requests.register_uri( |
@@ -133,6 +171,24 @@ def test_modify(self, mock_requests): |
133 | 171 | self.assertEqual(mock_requests.last_request.json(), jsonRequest) |
134 | 172 | self.assertTrue(isinstance(expected, Contact)) |
135 | 173 |
|
| 174 | + @requests_mock.mock() |
| 175 | + def test_modify_with_null_external_id(self, mock_requests): |
| 176 | + mock_requests.register_uri( |
| 177 | + "PATCH", |
| 178 | + "https://api.chartmogul.com/v1/contacts/con_00000000-0000-0000-0000-000000000000", |
| 179 | + status_code=200, |
| 180 | + json=contactWithNullExternalId, |
| 181 | + ) |
| 182 | + |
| 183 | + jsonRequest = {"external_id": None} |
| 184 | + config = Config("token") |
| 185 | + result = Contact.modify( |
| 186 | + config, uuid="con_00000000-0000-0000-0000-000000000000", data=jsonRequest |
| 187 | + ).get() |
| 188 | + self.assertEqual(mock_requests.call_count, 1, "expected call") |
| 189 | + self.assertEqual(mock_requests.last_request.json(), jsonRequest) |
| 190 | + self.assertIsNone(result.external_id) |
| 191 | + |
136 | 192 | @requests_mock.mock() |
137 | 193 | def test_retrieve(self, mock_requests): |
138 | 194 | mock_requests.register_uri( |
|
0 commit comments