def test_send_messages_without_ses(self): """Testing EmailBackend.send_messages without Amazon SES""" self._spy_on_smtp((250, b'Ok something')) backend = EmailBackend(host='mail.example.com') self.assertFalse(backend.is_ses) message = self._create_message() backend.send_messages([message]) self.assertEqual(message.message_id, '<*****@*****.**>')
def test_send_messages_with_ses_and_no_250(self): """Testing EmailBackend.send_messages with Amazon SES and no 250 Ok""" self._spy_on_smtp((451, b'Oh no')) backend = EmailBackend(host='email-smtp.us-east-1.amazonaws.com') self.assertTrue(backend.is_ses) message = self._create_message() with self.assertRaises(SMTPDataError): backend.send_messages([message]) self.assertEqual(message.message_id, '<*****@*****.**>')
def test_send_messages_with_ses_and_250_ok_too_long(self): """Testing EmailBackend.send_messages with Amazon SES and 250 Ok with too many trailing values """ self._spy_on_smtp((250, b'Ok something something')) backend = EmailBackend(host='email-smtp.us-east-1.amazonaws.com') self.assertTrue(backend.is_ses) message = self._create_message() backend.send_messages([message]) self.assertEqual(message.message_id, '<*****@*****.**>')
def test_send_messages_with_ses_and_250_ok_no_msgid(self): """Testing EmailBackend.send_messages with Amazon SES and 250 Ok without a message ID """ self._spy_on_smtp((250, b'Ok')) backend = EmailBackend(host='email-smtp.us-east-1.amazonaws.com') self.assertTrue(backend.is_ses) message = self._create_message() backend.send_messages([message]) self.assertEqual(message.message_id, '<*****@*****.**>')
def test_send_messages_with_ses_and_250_ok(self): """Testing EmailBackend.send_messages with Amazon SES and 250 Ok with message ID """ message_uuid = \ '1234567abcd12345-6789abcd-1234-a1b2-c3d4-012345abcdef-000000' self._spy_on_smtp((250, b'Ok %s' % message_uuid.encode('utf-8'))) # We're going to run this test for every region, to ensure that # there aren't any issues with the differences between regions. for mail_host, mail_info in six.iteritems(self.SES_HOSTS): backend = EmailBackend(host=mail_host) self.assertTrue(backend.is_ses) message = self._create_message() backend.send_messages([message]) self.assertEqual( message.message_id, '<%s@%s>' % (message_uuid, mail_info['msgid_domain']))
def test_ses_message_id_domain(self): """Testing EmailBackend.ses_message_id_domain""" for mail_host, mail_info in six.iteritems(self.SES_HOSTS): backend = EmailBackend(host=mail_host) self.assertEqual(backend.ses_message_id_domain, mail_info['msgid_domain'])
def test_is_ses_without_ses(self): """Testing EmailBackend.is_ses without Amazon SES SMTP hostname""" backend = EmailBackend(host='mail.example.com') self.assertFalse(backend.is_ses)
def test_is_ses_with_ses(self): """Testing EmailBackend.is_ses with Amazon SES SMTP hostname""" for host in six.iterkeys(self.SES_HOSTS): backend = EmailBackend(host=host) self.assertTrue(backend.is_ses, msg='EmailBackend.is_ses failed for %s' % host)