def test_drop_cookie(self, mock_sailthru, mock_get_current_request):
     """
     Test add_email_marketing_cookies
     """
     response = JsonResponse({
         "success": True,
         "redirect_url": 'test.com/test',
     })
     self.request.COOKIES['sailthru_content'] = 'cookie_content'
     mock_get_current_request.return_value = self.request
     mock_sailthru.return_value = SailthruResponse(
         JsonResponse({'keys': {
             'cookie': 'test_cookie'
         }}))
     add_email_marketing_cookies(None, response=response, user=self.user)
     mock_sailthru.assert_called_with(
         'user', {
             'fields': {
                 'keys': 1
             },
             'cookies': {
                 'sailthru_content': 'cookie_content'
             },
             'id': TEST_EMAIL,
             'vars': {
                 'last_login_date': ANY
             }
         })
     self.assertTrue('sailthru_hid' in response.cookies)
     self.assertEquals(response.cookies['sailthru_hid'].value,
                       "test_cookie")
Пример #2
0
    def test_drop_cookie(self, mock_sailthru, mock_get_current_request):
        """
        Test add_email_marketing_cookies
        """
        response = JsonResponse({
            "success": True,
            "redirect_url": 'test.com/test',
        })
        self.request.COOKIES['anonymous_interest'] = 'cookie_content'
        mock_get_current_request.return_value = self.request
        mock_sailthru.return_value = SailthruResponse(JsonResponse({'keys': {'cookie': 'test_cookie'}}))
        cookie_log = "Sending to Sailthru the user interest cookie [{'anonymous_interest': 'cookie_content'}]" \
                     ' for user [[email protected]]'

        with LogCapture(LOGGER_NAME, level=logging.INFO) as logger:
            add_email_marketing_cookies(None, response=response, user=self.user)
            logger.check(
                (LOGGER_NAME, 'INFO', cookie_log),
                (LOGGER_NAME, 'INFO',
                    'Started at {start} and ended at {end}, time spent:{delta} milliseconds'.format(
                        start=datetime.datetime.now().isoformat(' '),
                        end=datetime.datetime.now().isoformat(' '),
                        delta=0)
                 )
            )
        mock_sailthru.assert_called_with('user',
                                         {'fields': {'keys': 1},
                                          'cookies': {'anonymous_interest': 'cookie_content'},
                                          'id': TEST_EMAIL,
                                          'vars': {'last_login_date': ANY}})
        self.assertTrue('sailthru_hid' in response.cookies)
        self.assertEquals(response.cookies['sailthru_hid'].value, "test_cookie")
Пример #3
0
    def test_drop_cookie(self, mock_sailthru, mock_get_current_request):
        """
        Test add_email_marketing_cookies
        """
        response = JsonResponse({
            "success": True,
            "redirect_url": 'test.com/test',
        })
        self.request.COOKIES['anonymous_interest'] = 'cookie_content'
        mock_get_current_request.return_value = self.request
        mock_sailthru.return_value = SailthruResponse(JsonResponse({'keys': {'cookie': 'test_cookie'}}))
        cookie_log = "Sending to Sailthru the user interest cookie [{'anonymous_interest': 'cookie_content'}]" \
                     ' for user [[email protected]]'

        with LogCapture(LOGGER_NAME, level=logging.INFO) as logger:
            add_email_marketing_cookies(None, response=response, user=self.user)
            logger.check(
                (LOGGER_NAME, 'INFO', cookie_log),
                (LOGGER_NAME, 'INFO',
                    'Started at {start} and ended at {end}, time spent:{delta} milliseconds'.format(
                        start=datetime.datetime.now().isoformat(' '),
                        end=datetime.datetime.now().isoformat(' '),
                        delta=0)
                 )
            )
        mock_sailthru.assert_called_with('user',
                                         {'fields': {'keys': 1},
                                          'cookies': {'anonymous_interest': 'cookie_content'},
                                          'id': TEST_EMAIL,
                                          'vars': {'last_login_date': ANY}})
        self.assertTrue('sailthru_hid' in response.cookies)
        self.assertEquals(response.cookies['sailthru_hid'].value, "test_cookie")
Пример #4
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)
Пример #5
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)
Пример #6
0
 def test_drop_cookie_task_error(self, mock_email_cookies):
     """
     Tests that task error is handled
     """
     mock_email_cookies.return_value = {}
     mock_email_cookies.get.side_effect = Exception
     with LogCapture(LOGGER_NAME, level=logging.INFO) as logger:
         add_email_marketing_cookies(None, response=None, user=self.user)
         logger.check((LOGGER_NAME, 'ERROR',
                       'Exception Connecting to celery task for {}'.format(
                           self.user.email)))
Пример #7
0
 def test_drop_cookie_task_error(self, mock_email_cookies):
     """
     Tests that task error is handled
     """
     mock_email_cookies.return_value = {}
     mock_email_cookies.get.side_effect = Exception
     with LogCapture(LOGGER_NAME, level=logging.INFO) as logger:
         add_email_marketing_cookies(None, response=None, user=self.user)
         logger.check((
             LOGGER_NAME, 'ERROR', 'Exception Connecting to celery task for {}'.format(
                 self.user.email
             )
         ))
Пример #8
0
 def test_drop_cookie(self, mock_sailthru):
     """
     Test add_email_marketing_cookies
     """
     response = JsonResponse({
         "success": True,
         "redirect_url": 'test.com/test',
     })
     mock_sailthru.return_value = SailthruResponse(JsonResponse({'keys': {'cookie': 'test_cookie'}}))
     add_email_marketing_cookies(None, response=response, user=self.user)
     self.assertTrue('sailthru_hid' in response.cookies)
     self.assertEquals(mock_sailthru.call_args[0][0], "user")
     userparms = mock_sailthru.call_args[0][1]
     self.assertEquals(userparms['fields']['keys'], 1)
     self.assertEquals(userparms['id'], TEST_EMAIL)
     self.assertEquals(response.cookies['sailthru_hid'].value, "test_cookie")
Пример #9
0
 def test_drop_cookie(self, mock_sailthru, mock_get_current_request):
     """
     Test add_email_marketing_cookies
     """
     response = JsonResponse({
         "success": True,
         "redirect_url": 'test.com/test',
     })
     self.request.COOKIES['sailthru_content'] = 'cookie_content'
     mock_get_current_request.return_value = self.request
     mock_sailthru.return_value = SailthruResponse(JsonResponse({'keys': {'cookie': 'test_cookie'}}))
     add_email_marketing_cookies(None, response=response, user=self.user)
     mock_sailthru.assert_called_with('user',
                                      {'fields': {'keys': 1},
                                       'cookies': {'sailthru_content': 'cookie_content'},
                                       'id': TEST_EMAIL,
                                       'vars': {'last_login_date': ANY}})
     self.assertTrue('sailthru_hid' in response.cookies)
     self.assertEquals(response.cookies['sailthru_hid'].value, "test_cookie")
Пример #10
0
 def test_drop_cookie(self, mock_sailthru, mock_get_current_request):
     """
     Test add_email_marketing_cookies
     """
     response = JsonResponse({"success": True, "redirect_url": "test.com/test"})
     self.request.COOKIES["sailthru_content"] = "cookie_content"
     mock_get_current_request.return_value = self.request
     mock_sailthru.return_value = SailthruResponse(JsonResponse({"keys": {"cookie": "test_cookie"}}))
     add_email_marketing_cookies(None, response=response, user=self.user)
     mock_sailthru.assert_called_with(
         "user",
         {
             "fields": {"keys": 1},
             "cookies": {"sailthru_content": "cookie_content"},
             "id": TEST_EMAIL,
             "vars": {"last_login_date": ANY},
         },
     )
     self.assertTrue("sailthru_hid" in response.cookies)
     self.assertEquals(response.cookies["sailthru_hid"].value, "test_cookie")
Пример #11
0
 def test_drop_cookie(self, mock_sailthru):
     """
     Test add_email_marketing_cookies
     """
     response = JsonResponse({
         "success": True,
         "redirect_url": 'test.com/test',
     })
     mock_sailthru.return_value = SailthruResponse(
         JsonResponse({'keys': {
             'cookie': 'test_cookie'
         }}))
     add_email_marketing_cookies(None, response=response, user=self.user)
     self.assertTrue('sailthru_hid' in response.cookies)
     self.assertEquals(mock_sailthru.call_args[0][0], "user")
     userparms = mock_sailthru.call_args[0][1]
     self.assertEquals(userparms['fields']['keys'], 1)
     self.assertEquals(userparms['id'], TEST_EMAIL)
     self.assertEquals(response.cookies['sailthru_hid'].value,
                       "test_cookie")
Пример #12
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)
Пример #13
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)
Пример #14
0
    def test_drop_cookie_error_path(self, mock_sailthru):
        """
        test that error paths return no cookie
        """
        response = JsonResponse({
            "success": True,
            "redirect_url": 'test.com/test',
        })
        mock_sailthru.return_value = SailthruResponse(
            JsonResponse({'keys': {
                'cookiexx': 'test_cookie'
            }}))
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse('sailthru_hid' in response.cookies)

        mock_sailthru.return_value = SailthruResponse(
            JsonResponse({
                'error': "error",
                "errormsg": "errormsg"
            }))
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse('sailthru_hid' in response.cookies)

        mock_sailthru.side_effect = SailthruClientError
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse('sailthru_hid' in response.cookies)
Пример #15
0
    def test_drop_cookie_error_path(self, mock_sailthru):
        """
        test that error paths return no cookie
        """
        response = JsonResponse({"success": True, "redirect_url": "test.com/test"})
        mock_sailthru.return_value = SailthruResponse(JsonResponse({"keys": {"cookiexx": "test_cookie"}}))
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse("sailthru_hid" in response.cookies)

        mock_sailthru.return_value = SailthruResponse(JsonResponse({"error": "error", "errormsg": "errormsg"}))
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse("sailthru_hid" in response.cookies)

        mock_sailthru.side_effect = SailthruClientError
        add_email_marketing_cookies(None, response=response, user=self.user)
        self.assertFalse("sailthru_hid" in response.cookies)