def test_email_callback_with_one_retry(self, mock_bespin_api, mock_work_queue_connection): mock_bespin_api.return_value.email_message_send.side_effect = [ requests.HTTPError() ] mail_sender = MailSender( config=Mock(email_retry_count=1, retry_wait_ms=2000)) mail_sender.email_callback(None, None, None, pickle.dumps({'send_email': '5'})) mock_bespin_api.return_value.email_message_send.assert_has_calls( [call('5')]) args, kwargs = mail_sender.channel.basic_publish.call_args sent_body = pickle.loads(kwargs['body']) self.assertEqual(sent_body['send_email'], '5') self.assertEqual(sent_body['retry_count'], 0) # retry count should be decremented self.assertEqual(kwargs['properties'].expiration, 2000) self.assertEqual(kwargs['routing_key'], 'SendEmail')
def test_email_callback_works_first_time(self, mock_bespin_api, mock_work_queue_connection): mail_sender = MailSender(config=Mock()) mail_sender.email_callback(None, None, None, pickle.dumps({'send_email': '5'})) mock_bespin_api.return_value.email_message_send.assert_called_with('5')