def test_modify_field(self, table, setting, value, result, mock_update_user, mock_get_current_request): """ Test that correct fields call update_user """ mock_get_current_request.return_value = self.request email_marketing_user_field_changed(None, self.user, table=table, setting=setting, new_value=value) self.assertEqual(mock_update_user.called, result)
def test_just_return_signals(self, mock_log_error): """ Ensure that disabling Sailthru just returns """ update_email_marketing_config(enabled=False) handle_enroll_status_change(None) self.assertFalse(mock_log_error.called) add_email_marketing_cookies(None) self.assertFalse(mock_log_error.called) email_marketing_register_user(None) self.assertFalse(mock_log_error.called) update_email_marketing_config(enabled=True) # test anonymous users anon = AnonymousUser() email_marketing_register_user(None, user=anon) self.assertFalse(mock_log_error.called) email_marketing_user_field_changed(None, user=anon) self.assertFalse(mock_log_error.called) # make sure enroll ignored when cost = 0 update_email_marketing_config(enroll_cost=0) handle_enroll_status_change( None, event=EnrollStatusChange.enroll, user=self.user, mode="audit", course_id=self.course_id ) self.assertFalse(mock_log_error.called)
def test_modify_email(self, mock_update_user): """ Test that change to email calls update_user_email """ email_marketing_user_field_changed(None, self.user, table='auth_user', setting='email', old_value='*****@*****.**') mock_update_user.assert_called_with(self.user.email, '*****@*****.**') # make sure nothing called if disabled mock_update_user.reset_mock() update_email_marketing_config(enabled=False) email_marketing_user_field_changed(None, self.user, table='auth_user', setting='email', old_value='*****@*****.**') self.assertFalse(mock_update_user.called)
def test_modify_field_with_sso(self, send_welcome_email, mock_get_current_request, mock_pipeline_get, mock_registry_get_from_pipeline, mock_sailthru_post): """ Test that welcome email is sent appropriately in the context of SSO registration """ mock_get_current_request.return_value = self.request mock_pipeline_get.return_value = 'saml-idp' mock_registry_get_from_pipeline.return_value = Mock(send_welcome_email=send_welcome_email) mock_sailthru_post.return_value = SailthruResponse(JsonResponse({'ok': True})) email_marketing_user_field_changed(None, self.user, table='auth_user', setting='is_active', new_value=True) if send_welcome_email: self.assertEqual(mock_sailthru_post.call_args[0][0], "send") else: self.assertNotEqual(mock_sailthru_post.call_args[0][0], "send")
def test_modify_language_preference(self, mock_update_user): """ Test that update_user is called with new language preference """ # If the user hasn't set an explicit language preference, we should send the application's default. self.assertIsNone(self.user.preferences.model.get_value(self.user, LANGUAGE_KEY)) email_marketing_user_field_changed( None, self.user, table='user_api_userpreference', setting=LANGUAGE_KEY, new_value=None ) self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], settings.LANGUAGE_CODE) # If the user has set an explicit language preference, we should send it. self.user.preferences.create(key=LANGUAGE_KEY, value='fr') email_marketing_user_field_changed( None, self.user, table='user_api_userpreference', setting=LANGUAGE_KEY, new_value='fr' ) self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], 'fr')
def test_just_return_signals(self, mock_log_error): """ Ensure that disabling Sailthru just returns """ update_email_marketing_config(enabled=False) add_email_marketing_cookies(None) self.assertFalse(mock_log_error.called) email_marketing_register_user(None, None, None) self.assertFalse(mock_log_error.called) update_email_marketing_config(enabled=True) # test anonymous users anon = AnonymousUser() email_marketing_register_user(None, anon, None) self.assertFalse(mock_log_error.called) email_marketing_user_field_changed(None, user=anon) self.assertFalse(mock_log_error.called)
def test_modify_language_preference(self, mock_update_user): """ Test that update_user is called with new language preference """ # If the user hasn't set an explicit language preference, we should send the application's default. self.assertIsNone( self.user.preferences.model.get_value(self.user, LANGUAGE_KEY)) email_marketing_user_field_changed(None, self.user, table='user_api_userpreference', setting=LANGUAGE_KEY, new_value=None) self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], settings.LANGUAGE_CODE) # If the user has set an explicit language preference, we should send it. self.user.preferences.create(key=LANGUAGE_KEY, value='fr') email_marketing_user_field_changed(None, self.user, table='user_api_userpreference', setting=LANGUAGE_KEY, new_value='fr') self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], 'fr')
def test_just_return_signals(self, mock_log_error): """ Ensure that disabling Sailthru just returns """ update_email_marketing_config(enabled=False) handle_enroll_status_change(None) self.assertFalse(mock_log_error.called) add_email_marketing_cookies(None) self.assertFalse(mock_log_error.called) email_marketing_register_user(None) self.assertFalse(mock_log_error.called) update_email_marketing_config(enabled=True) # test anonymous users anon = AnonymousUser() email_marketing_register_user(None, user=anon) self.assertFalse(mock_log_error.called) email_marketing_user_field_changed(None, user=anon) self.assertFalse(mock_log_error.called)
def test_modify_field(self, table, setting, value, result, mock_update_user): """ Test that correct fields call update_user """ email_marketing_user_field_changed(None, self.user, table=table, setting=setting, new_value=value) self.assertEqual(mock_update_user.called, result)