def test_too_many_get_message(self) -> None: """get_message when server has received too many get API requests already.""" message_id = mailjet_rest.Client(version='v3.1').send.create({ 'Messages': [{ 'To': [{ 'Email': '*****@*****.**', }], 'TemplateID': 123456, }] }).json()['Messages'][0]['To'][0]['MessageID'] mailjetmock.set_too_many_get_api_requests() with self.assertRaises(requests.HTTPError): mail.get_message(message_id)
def test_get_message(self) -> None: """get_message basic usage.""" before = datetime.datetime.now() message_id = mailjet_rest.Client(version='v3.1').send.create({ 'Messages': [{ 'To': [{ 'Email': '*****@*****.**', }], 'TemplateID': 123456, }] }).json()['Messages'][0]['To'][0]['MessageID'] message = mail.get_message(message_id) assert message self.assertEqual(message_id, message.get('ID')) self.assertEqual('sent', message.get('Status')) arrived_at_string = message.get('ArrivedAt') assert isinstance(arrived_at_string, str) arrived_at = datetime.datetime.strptime(arrived_at_string, '%Y-%m-%dT%H:%M:%SZ') self.assertGreaterEqual(arrived_at, before - datetime.timedelta(seconds=1)) self.assertLessEqual( arrived_at, datetime.datetime.now() + datetime.timedelta(seconds=1))
def _find_message(email_sent: user_pb2.EmailSent) -> Optional[Dict[str, Any]]: if email_sent.mailjet_message_id: try: return mail.get_message(email_sent.mailjet_message_id) except requests.exceptions.HTTPError as error: if error.response.status_code == 404: return None # Could not find message. return None
def test_get_message_unknown(self, mock_mail_client): """get_message for an unknown message.""" mock_mail_client().message.get.return_value.json.return_value = { 'Count': 0 } message = mail.get_message('421') self.assertEqual(None, message) mock_mail_client().message.get.assert_called_once_with('421')
def test_get_message(self, mock_mail_client): """get_message basic usage.""" mock_mail_client().message.get.return_value.json.return_value = { 'Count': 1, 'Data': [{ 'ID': '421', 'Status': 'sent', }], } message = mail.get_message('421') self.assertEqual({'ID': '421', 'Status': 'sent'}, message) mock_mail_client().message.get.assert_called_once_with('421')
def test_get_message_unknown(self) -> None: """get_message for an unknown message.""" message = mail.get_message(421) self.assertEqual(None, message)
def _find_message(email_sent): if email_sent.mailjet_message_id: return mail.get_message(email_sent.mailjet_message_id) # Could not find message. return None