# -*- 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 ..emails import PasswordSetEmail TEST_USERNAME = 'user' TEST_PASSWORD = u'me||ön 2' TEST_EMAIL = 'root@localhost' class EmailsTestCase(TestCase): def setUp(self): 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 ' 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] email = PasswordSetEmail(self.user, password) email.send() 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.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)