@@ -106,6 +106,7 @@ def test_assignment_email_task(self, mock_braze_client, mock_enterprise_client):
106106 'name' : self .enterprise_name ,
107107 'sender_alias' : self .enterprise_sender_alias ,
108108 'contact_email' : self .contact_email ,
109+ 'default_language' : 'en' ,
109110 }
110111
111112 # Add an extra recipient with no associated license
@@ -142,6 +143,7 @@ def test_assignment_email_task(self, mock_braze_client, mock_enterprise_client):
142143 'enterprise_customer_name' : self .enterprise_name ,
143144 'enterprise_sender_alias' : self .enterprise_sender_alias ,
144145 'enterprise_contact_email' : self .contact_email ,
146+ 'enterprise_default_language' : 'en' ,
145147 }
146148 expected_recipient = {
147149 'attributes' : {'email' : user_email },
@@ -182,6 +184,7 @@ def test_assignment_task_send_email_failure_logged(self, mock_enterprise_client,
182184 'name' : self .enterprise_name ,
183185 'sender_alias' : self .enterprise_sender_alias ,
184186 'contact_email' : self .contact_email ,
187+ 'default_language' : 'en' ,
185188 }
186189
187190 tasks .send_assignment_email_task (
@@ -203,6 +206,7 @@ def test_send_reminder_email_task(self, mock_enterprise_client, mock_braze_clien
203206 'name' : self .enterprise_name ,
204207 'sender_alias' : self .enterprise_sender_alias ,
205208 'contact_email' : self .contact_email ,
209+ 'default_language' : 'en' ,
206210 }
207211 with freeze_time (localized_utcnow ()):
208212 # Add an extra recipient with no associated license
@@ -239,6 +243,7 @@ def test_send_reminder_email_task(self, mock_enterprise_client, mock_braze_clien
239243 'enterprise_customer_name' : self .enterprise_name ,
240244 'enterprise_sender_alias' : self .enterprise_sender_alias ,
241245 'enterprise_contact_email' : self .contact_email ,
246+ 'enterprise_default_language' : 'en' ,
242247 }
243248 expected_recipient = {
244249 'attributes' : {'email' : user_email },
@@ -282,6 +287,7 @@ def test_send_reminder_email_failure_no_remind_date_update(self, mock_enterprise
282287 'name' : self .enterprise_name ,
283288 'sender_alias' : self .enterprise_sender_alias ,
284289 'contact_email' : self .contact_email ,
290+ 'default_language' : 'en' ,
285291 }
286292
287293 with self .assertRaises (BrazeClientError ):
@@ -297,6 +303,58 @@ def test_send_reminder_email_failure_no_remind_date_update(self, mock_enterprise
297303 False
298304 )
299305
306+ @mock .patch ('license_manager.apps.api.tasks.BrazeApiClient' , autospec = True , return_value = mock .MagicMock ())
307+ @mock .patch ('license_manager.apps.api.tasks.EnterpriseApiClient' , return_value = mock .MagicMock ())
308+ def test_assignment_email_task_with_null_default_language (self , mock_enterprise_client , mock_braze_client ):
309+ """
310+ Assert the assignment email task handles None default_language by using empty string.
311+ """
312+ mock_enterprise_client ().get_enterprise_customer_data .return_value = {
313+ 'slug' : self .enterprise_slug ,
314+ 'name' : self .enterprise_name ,
315+ 'sender_alias' : self .enterprise_sender_alias ,
316+ 'contact_email' : self .contact_email ,
317+ 'default_language' : None , # Explicitly None
318+ }
319+
320+ tasks .send_assignment_email_task (
321+ self .custom_template_text ,
322+ self .email_recipient_list ,
323+ self .subscription_plan .uuid
324+ )
325+
326+ # Verify that enterprise_default_language is empty string when source is None
327+ mock_send_message = mock_braze_client .return_value .send_campaign_message
328+ actual_recipients = mock_send_message .call_args_list [0 ][1 ]['recipients' ]
329+ for recipient in actual_recipients :
330+ assert recipient ['trigger_properties' ]['enterprise_default_language' ] == ''
331+
332+ @mock .patch ('license_manager.apps.api.tasks.BrazeApiClient' , autospec = True , return_value = mock .MagicMock ())
333+ @mock .patch ('license_manager.apps.api.tasks.EnterpriseApiClient' , return_value = mock .MagicMock ())
334+ def test_send_reminder_email_task_with_null_default_language (self , mock_enterprise_client , mock_braze_client ):
335+ """
336+ Assert the reminder email task handles None default_language by using empty string.
337+ """
338+ mock_enterprise_client ().get_enterprise_customer_data .return_value = {
339+ 'slug' : self .enterprise_slug ,
340+ 'name' : self .enterprise_name ,
341+ 'sender_alias' : self .enterprise_sender_alias ,
342+ 'contact_email' : self .contact_email ,
343+ 'default_language' : None , # Explicitly None
344+ }
345+
346+ tasks .send_reminder_email_task (
347+ self .custom_template_text ,
348+ self .email_recipient_list ,
349+ self .subscription_plan .uuid
350+ )
351+
352+ # Verify that enterprise_default_language is empty string when source is None
353+ mock_send_message = mock_braze_client .return_value .send_campaign_message
354+ actual_recipients = mock_send_message .call_args_list [0 ][1 ]['recipients' ]
355+ for recipient in actual_recipients :
356+ assert recipient ['trigger_properties' ]['enterprise_default_language' ] == ''
357+
300358 def _verify_mock_send_email_arguments (self , send_email_args ):
301359 """
302360 Verifies that the arguments passed into send_activation_emails is correct
@@ -328,6 +386,7 @@ def test_send_post_activation_email_task(self, mock_braze_client, mock_enterpris
328386 'name' : self .enterprise_name ,
329387 'sender_alias' : self .enterprise_sender_alias ,
330388 'contact_email' : self .contact_email ,
389+ 'default_language' : 'en' ,
331390 }
332391
333392 tasks .send_post_activation_email_task (self .enterprise_uuid , self .user_email )
@@ -342,6 +401,7 @@ def test_send_post_activation_email_task(self, mock_braze_client, mock_enterpris
342401 'enterprise_customer_name' : self .enterprise_name ,
343402 'enterprise_sender_alias' : self .enterprise_sender_alias ,
344403 'enterprise_contact_email' : self .contact_email ,
404+ 'enterprise_default_language' : 'en' ,
345405 }
346406 expected_recipient = {
347407 'attributes' : {'email' : self .user_email },
@@ -367,11 +427,32 @@ def test_send_post_activation_email_task_reraises_braze_exceptions(self, _, mock
367427 'name' : self .enterprise_name ,
368428 'sender_alias' : self .enterprise_sender_alias ,
369429 'contact_email' : self .contact_email ,
430+ 'default_language' : 'en' ,
370431 }
371432
372433 with self .assertRaises (BrazeClientError ):
373434 tasks .send_post_activation_email_task (self .enterprise_uuid , self .user_email )
374435
436+ @mock .patch ('license_manager.apps.api.tasks.EnterpriseApiClient' , return_value = mock .MagicMock ())
437+ @mock .patch ('license_manager.apps.api.tasks.BrazeApiClient' , return_value = mock .MagicMock ())
438+ def test_send_post_activation_email_task_with_null_default_language (self , mock_braze_client , mock_enterprise_client ):
439+ """
440+ Assert the activation email task handles None default_language by using empty string.
441+ """
442+ mock_enterprise_client ().get_enterprise_customer_data .return_value = {
443+ 'slug' : self .enterprise_slug ,
444+ 'name' : self .enterprise_name ,
445+ 'sender_alias' : self .enterprise_sender_alias ,
446+ 'contact_email' : self .contact_email ,
447+ 'default_language' : None , # Explicitly None
448+ }
449+
450+ tasks .send_post_activation_email_task (self .enterprise_uuid , self .user_email )
451+
452+ # Verify that enterprise_default_language is empty string when source is None
453+ actual_trigger_properties = mock_braze_client ().send_campaign_message .call_args [1 ]['trigger_properties' ]
454+ assert actual_trigger_properties ['enterprise_default_language' ] == ''
455+
375456 @mock .patch ('license_manager.apps.api.tasks.EnterpriseApiClient' , return_value = mock .MagicMock ())
376457 @mock .patch ('license_manager.apps.api.tasks.BrazeApiClient' , return_value = mock .MagicMock ())
377458 def test_revocation_cap_email_task (self , mock_braze_client , mock_enterprise_client ):
0 commit comments