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)
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)
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)
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)
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'])
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))
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))
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"])
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'])
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)
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))
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))