def run_check(self, user_exists=True, http_error=False):
     """
     Run the check and return True if it passed, False otherwise.
     Mocks the actual Basket call.
     `user_exists` is whether Basket should respond as if the user existed.
     `http_error` is whether the basket call should respond as if it couldn't get to Basket
     or Exact Target.
     """
     lookup_path = 'mozillians.phonebook.management.commands.check_basket.lookup_user'
     with patch(lookup_path, autospec=True) as mock_lookup:
         if http_error:
             mock_lookup.side_effect = BasketException(
                 code=BASKET_NETWORK_FAILURE)
         elif not user_exists:
             mock_lookup.side_effect = BasketException(
                 code=BASKET_UNKNOWN_EMAIL)
         else:
             mock_lookup.return_value = {'status': 'ok'}
         cmd = Command()
         cmd.stdout = stdout
         try:
             cmd.handle()
         except CommandError:
             return False
         else:
             return True
Beispiel #2
0
 def test_get_newsletters_fallback(self, mock_basket_get_newsletters,
                                   mock_glbnd):
     # if get_newsletters() cannot reach basket, it returns the
     # newsletters from cached json
     mock_basket_get_newsletters.side_effect = BasketException(
         'network error',
         code=errors.BASKET_NETWORK_FAILURE,
     )
     return_value = utils.get_newsletters()
     self.assertEqual(mock_glbnd.return_value, return_value)
Beispiel #3
0
 def test_unknown_email(self, mock_basket):
     """Unknown email addresses give helpful error message"""
     data = {'email': '*****@*****.**'}
     mock_basket.side_effect = BasketException(status_code=404)
     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.mozilla-and-you')
     self.assertIn(expected_error, form.errors['email'])
Beispiel #4
0
 def test_get_newsletters_fallback(self, mock_basket_get_newsletters):
     # if get_newsletters() cannot reach basket, it returns the
     # newsletters from settings
     mock_basket_get_newsletters.side_effect = BasketException(
         'network error',
         code=errors.BASKET_NETWORK_FAILURE,
     )
     default_value = mock.Mock()
     with override_settings(DEFAULT_NEWSLETTERS=default_value):
         return_value = get_newsletters()
     self.assertEqual(default_value, return_value)
Beispiel #5
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 = BasketException(status_code=403)
         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'])