class EmailBackendTests(SimpleTestCase): def setUp(self): self.user = get_user_model().objects.create( username='******', email='*****@*****.**', ) self.code = LoginCode.create_code_for_user(self.user, next='/secrets/') self.backend = EmailBackend() def tearDown(self): self.user.delete() def test_email_backend(self): "Send email via EmailBackend with default options" mail.outbox = [] self.backend.send_login_code(self.code) self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] http_url = self.code.login_url() self.assertIn(http_url, message.body) self.assertTrue(http_url.startswith('http:')) self.assertEqual([self.user.email], message.to) def test_email_backend_with_https(self): "Send email via EmailBackend with secure=True" mail.outbox = [] self.backend.send_login_code(self.code, secure=True, host='secure.example.com') self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] https_url = self.code.login_url(secure=True, host='secure.example.com') self.assertTrue(https_url.startswith('https:')) self.assertIn(https_url, message.body)
def setUp(self): self.user = get_user_model().objects.create( username='******', email='*****@*****.**', ) self.code = LoginCode.create_code_for_user(self.user, next='/secrets/') self.backend = EmailBackend()
class EmailBackendTests(TestCase): def setUp(self): self.user = get_user_model().objects.create( username='******', email='*****@*****.**', ) self.code = LoginCode.create_code_for_user(self.user, next='/secrets/') self.backend = EmailBackend() def test_email_backend(self): "Send email via EmailBackend with default options" self.backend.send_login_code(self.code, {'url': 'https://example.com'}) self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertIn('https://example.com', message.body) self.assertEqual([self.user.email], message.to) self.assertEqual(0, len(message.alternatives)) def test_html_template_name(self): # We don't have an existing html template, so we just use the txt template self.backend.html_template_name = 'registration/login_email.txt' self.backend.send_login_code(self.code, {'url': 'https://example.com'}) self.assertEqual(1, len(mail.outbox)) message = mail.outbox[0] self.assertIn('https://example.com', message.body) self.assertEqual(1, len(message.alternatives)) self.assertIn('https://example.com', message.alternatives[0][0])