Beispiel #1
0
 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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
 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")
Beispiel #5
0
    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')
Beispiel #6
0
    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)
Beispiel #9
0
 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)