# -*- coding: utf-8 -*- 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 EmailTestMixin from ..emails import PasswordSetEmail TEST_USERNAME = 'user' TEST_PASSWORD = 'me||ön 21ABll' TEST_EMAIL = 'root@localhost' PASSWORD_EMAIL_TEMPLATE = """Hallo {fullname}, Benutzername: {username} Passwort: {password} URL: {base_url}/ """ class EmailTestCase(EmailTestMixin, TestCase): def setUp(self): super().setUp() model = get_user_model() self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL) def test_send(self): password = TEST_PASSWORD[::-1] email = PasswordSetEmail(self.user, password) email.send() self.assertEqual(len(django_mail.outbox), 1) mail = django_mail.outbox[0] self.assertSender(mail) self.assertRecipients(mail, [self.user]) self.assertSubject(mail, 'Zugangsdaten') 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)