示例#1
0
    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)
示例#2
0
    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
示例#4
0
    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')
示例#5
0
    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')
示例#6
0
    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