Skip to content

Commit 08698ab

Browse files
committed
fix: be defensive about pulling both email and external_id from braze export.
1 parent 5a1f485 commit 08698ab

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

CHANGELOG.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ Change Log
1414
Unreleased
1515
~~~~~~~~~~
1616

17+
[0.2.2]
18+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19+
fix: be defensive about pulling both ``email`` and ``external_id`` from braze export.
20+
1721
[0.2.1]
1822
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1923
fix: be defensive about pulling external_id from braze export.

braze/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Python client for interacting with Braze APIs.
33
"""
44

5-
__version__ = '0.2.1'
5+
__version__ = '0.2.2'

braze/client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,10 @@ def get_braze_external_id_batch(self, emails, alias_label):
177177
response = self._make_request(payload, BrazeAPIEndpoints.EXPORT_IDS, REQUEST_TYPE_POST)
178178

179179
for identified_user in response['users']:
180-
external_ids_by_email[identified_user['email']] = identified_user.get('external_id')
180+
identified_email = identified_user.get('email')
181+
external_id = identified_user.get('external_id')
182+
if identified_email and external_id:
183+
external_ids_by_email[identified_email] = external_id
181184

182185
logger.info(f'external ids from batch identify braze users response: {external_ids_by_email}')
183186
return external_ids_by_email

tests/braze/test_client.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,14 @@ def test_create_braze_alias_user_exists(self):
257257
responses.add(
258258
responses.POST,
259259
self.EXPORT_ID_URL,
260-
json={'users': [{'external_id': existing_enternal_id, 'email': test_email}], 'message': 'success'},
260+
json={
261+
'users': [
262+
{'external_id': existing_enternal_id, 'email': test_email},
263+
{'external_id': '123'},
264+
{},
265+
],
266+
'message': 'success'
267+
},
261268
status=201
262269
)
263270
responses.add(

0 commit comments

Comments
 (0)