Exemple #1
0
 def test_unknown_email(self, mock_basket):
     """Unknown email addresses give helpful error message"""
     data = {"email": "*****@*****.**"}
     mock_basket.side_effect = basket.BasketException(status_code=404, code=basket.errors.BASKET_UNKNOWN_EMAIL)
     rsp = self.client.post(self.url, data)
     self.assertTrue(mock_basket.called)
     self.assertEqual(200, rsp.status_code)
Exemple #2
0
 def test_basket_down(self, messages_mock, basket_mock):
     """If basket is down, we report the appropriate error"""
     basket_mock.side_effect = basket.BasketException()
     rsp = self.client.post(self.url, {"country": "gb"})
     self.assertEqual(200, rsp.status_code)
     basket_mock.assert_called_with("post", "user-meta", data={"country": "gb"}, token=self.token)
     messages_mock.add_message.assert_called_with(ANY, messages_mock.ERROR, ANY)
Exemple #3
0
 def test_basket_down(self, messages_mock, uu_mock):
     """If basket is down, we report the appropriate error"""
     uu_mock.side_effect = basket.BasketException()
     rsp = self.client.post(self.url, {'country': 'gb'})
     self.assertEqual(200, rsp.status_code)
     uu_mock.assert_called_with(self.token, country='gb')
     messages_mock.add_message.assert_called_with(ANY, messages_mock.ERROR,
                                                  ANY)
Exemple #4
0
 def test_lookup_token_unregistered(self, mock_lookup_user):
     # Lookup token for a user with no registered email
     # Basket raises unknown user exception, then lookup-token returns None
     user = User(email='*****@*****.**')
     profile = UserProfile(user=user)
     mock_lookup_user.side_effect = basket.BasketException(
         code=basket.errors.BASKET_UNKNOWN_EMAIL)
     result = profile.lookup_basket_token()
     ok_(result is None)
Exemple #5
0
 def test_unknown_email(self, mock_basket):
     """Unknown email addresses give helpful error message"""
     data = {'email': '*****@*****.**'}
     mock_basket.side_effect = basket.BasketException(
         status_code=404, code=basket.errors.BASKET_UNKNOWN_EMAIL)
     rsp = self.client.post(self.url, data)
     self.assertTrue(mock_basket.called)
     self.assertEqual(200, rsp.status_code)
     form = rsp.context['form']
     expected_error = unknown_address_text % \
         reverse('newsletter.subscribe')
     self.assertIn(expected_error, form.errors['email'])
Exemple #6
0
 def test_returns_ajax_basket_error(self, subscribe_mock):
     """Basket error AJAX post should return proper error."""
     subscribe_mock.side_effect = basket.BasketException(code=basket.errors.BASKET_NETWORK_FAILURE)
     data = {
         "newsletters": "flintstones",
         "email": "*****@*****.**",
         "fmt": "H",
         "privacy": True,
     }
     resp = self.ajax_request(data)
     resp_data = json.loads(resp.content)
     self.assertFalse(resp_data["success"])
     self.assertEqual(resp_data["errors"][0], str(general_error))
Exemple #7
0
 def test_returns_ajax_invalid_email(self, subscribe_mock):
     """Invalid email AJAX post should return proper error."""
     subscribe_mock.side_effect = basket.BasketException(code=basket.errors.BASKET_INVALID_EMAIL)
     data = {
         "newsletters": "flintstones",
         "email": "*****@*****.**",
         "fmt": "H",
         "privacy": True,
     }
     resp = self.ajax_request(data)
     resp_data = json.loads(resp.content)
     self.assertFalse(resp_data["success"])
     self.assertEqual(resp_data["errors"][0], str(invalid_email_address))
Exemple #8
0
 def test_bad_token(self):
     """If the token is bad, we report the appropriate error"""
     with patch("basket.confirm") as confirm:
         confirm.side_effect = basket.BasketException(status_code=403, code=basket.errors.BASKET_UNKNOWN_TOKEN)
         with patch("lib.l10n_utils.render") as mock_render:
             mock_render.return_value = HttpResponse("")
             rsp = self.client.get(self.url, follow=True)
         self.assertEqual(200, rsp.status_code)
         confirm.assert_called_with(self.token)
         context = mock_render.call_args[0][2]
         self.assertFalse(context["success"])
         self.assertFalse(context["generic_error"])
         self.assertTrue(context["token_error"])
Exemple #9
0
 def test_basket_down(self):
     """If basket is down, we report the appropriate error"""
     with patch('basket.confirm') as confirm:
         confirm.side_effect = basket.BasketException()
         with patch('lib.l10n_utils.render') as mock_render:
             mock_render.return_value = HttpResponse('')
             rsp = self.client.get(self.url, follow=True)
         self.assertEqual(200, rsp.status_code)
         confirm.assert_called_with(self.token)
         context = mock_render.call_args[0][2]
         self.assertFalse(context['success'])
         self.assertTrue(context['generic_error'])
         self.assertFalse(context['token_error'])
Exemple #10
0
 def test_basket_email_error(self, basket_mock):
     basket_mock.side_effect = basket.BasketException(code=basket.errors.BASKET_INVALID_EMAIL)
     req = self.rf.post('/', {
         'email': '*****@*****.**',
         'name': 'The Dude',
         'privacy': 'yes',
         'country': 'us',
     })
     with self.activate('en-US'):
         resp = views.ContributeTasksSurvey.as_view()(req)
     self.assertEqual(resp.status_code, 200)
     self.assertIn('Whoops! Be sure to enter a valid email address.', resp.content)
     self.assertTrue(basket_mock.called)
Exemple #11
0
 def test_returns_ajax_basket_error(self, subscribe_mock):
     """Basket error AJAX post should return proper error."""
     subscribe_mock.side_effect = basket.BasketException(
         code=basket.errors.BASKET_NETWORK_FAILURE)
     data = {
         'newsletters': 'flintstones',
         'email': '*****@*****.**',
         'privacy': True,
     }
     resp = self.ajax_request(data)
     resp_data = json.loads(resp.content)
     self.assertFalse(resp_data['success'])
     self.assertEqual(resp_data['errors'][0], unicode(general_error))
Exemple #12
0
 def test_returns_ajax_invalid_email(self, subscribe_mock):
     """Invalid email AJAX post should return proper error."""
     subscribe_mock.side_effect = basket.BasketException(
         code=basket.errors.BASKET_INVALID_EMAIL)
     data = {
         'newsletters': 'flintstones',
         'email': '*****@*****.**',
         'privacy': True,
     }
     resp = self.ajax_request(data)
     resp_data = json.loads(resp.content)
     self.assertFalse(resp_data['success'])
     self.assertEqual(resp_data['errors'][0], unicode(invalid_email_address))