UPD: more/better tests.

This commit is contained in:
2019-03-25 17:17:56 +01:00
parent 94402fb5d0
commit bbe1ffac08
8 changed files with 481 additions and 144 deletions

View File

@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
from django.apps import apps
from django.contrib.auth import get_user_model
from django.core import mail as django_mail
from django.test import TestCase
from dav_base.tests.generic import EmailTestCase
from ..emails import PasswordSetEmail
@@ -11,18 +11,21 @@ TEST_USERNAME = 'user'
TEST_PASSWORD = u'me||ön 2'
TEST_EMAIL = 'root@localhost'
PASSWORD_EMAIL_TEMPLATE = u"""Hallo {fullname},
class EmailsTestCase(TestCase):
Benutzername: {username}
Passwort: {password}
URL: {base_url}/
"""
class TestCase(EmailTestCase):
def setUp(self):
super(TestCase, self).setUp()
model = get_user_model()
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
self.email_sender = 'Automatic Software Test <root@localhost>'
self.email_subject_prefix = '[Test]'
app_config = apps.get_app_config('dav_base')
app_config.settings.email_sender = self.email_sender
app_config.settings.email_subject_prefix = self.email_subject_prefix
def test_send(self):
password = TEST_PASSWORD[::-1]
@@ -32,15 +35,14 @@ class EmailsTestCase(TestCase):
self.assertEqual(len(django_mail.outbox), 1)
mail = django_mail.outbox[0]
recipient = u'"%s" <%s>' % (self.user.get_full_name(), self.user.email)
recipients = mail.recipients()
self.assertIn(recipient, recipients)
self.assertEqual(len(recipients), 1)
self.assertSender(mail)
self.assertRecipients(mail, [self.user])
self.assertSubject(mail, u'Zugangsdaten')
self.assertEqual(mail.from_email, self.email_sender)
subject = u'Zugangsdaten'
subject = u'{} {}'.format(self.email_subject_prefix, subject)
self.assertEqual(mail.subject, subject)
self.assertIn(password, mail.body)
expected_body = PASSWORD_EMAIL_TEMPLATE.format(
fullname=self.user.get_full_name(),
username=self.user.username,
password=password,
base_url=self.email_base_url,
)
self.assertBody(mail, expected_body)