12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- from django.core import mail
- from django.core.management import call_command
- from django.test import SimpleTestCase, override_settings
- @override_settings(
- ADMINS=(('Admin', 'admin@example.com'), ('Admin and Manager', 'admin_and_manager@example.com')),
- MANAGERS=(('Manager', 'manager@example.com'), ('Admin and Manager', 'admin_and_manager@example.com')),
- )
- class SendTestEmailManagementCommand(SimpleTestCase):
- """
- Test the sending of a test email using the `sendtestemail` command.
- """
- def test_single_receiver(self):
- """
- The mail is sent with the correct subject and recipient.
- """
- recipient = 'joe@example.com'
- call_command('sendtestemail', recipient)
- self.assertEqual(len(mail.outbox), 1)
- mail_message = mail.outbox[0]
- self.assertEqual(mail_message.subject[0:15], 'Test email from')
- self.assertEqual(mail_message.recipients(), [recipient])
- def test_multiple_receivers(self):
- """
- The mail may be sent with multiple recipients.
- """
- recipients = ['joe@example.com', 'jane@example.com']
- call_command('sendtestemail', recipients[0], recipients[1])
- self.assertEqual(len(mail.outbox), 1)
- mail_message = mail.outbox[0]
- self.assertEqual(mail_message.subject[0:15], 'Test email from')
- self.assertEqual(sorted(mail_message.recipients()), [
- 'jane@example.com',
- 'joe@example.com',
- ])
- def test_manager_receivers(self):
- """
- The mail should be sent to the email addresses specified in
- settings.MANAGERS.
- """
- call_command('sendtestemail', '--managers')
- self.assertEqual(len(mail.outbox), 1)
- mail_message = mail.outbox[0]
- self.assertEqual(sorted(mail_message.recipients()), [
- 'admin_and_manager@example.com',
- 'manager@example.com',
- ])
- def test_admin_receivers(self):
- """
- The mail should be sent to the email addresses specified in
- settings.ADMIN.
- """
- call_command('sendtestemail', '--admins')
- self.assertEqual(len(mail.outbox), 1)
- mail_message = mail.outbox[0]
- self.assertEqual(sorted(mail_message.recipients()), [
- 'admin@example.com',
- 'admin_and_manager@example.com',
- ])
- def test_manager_and_admin_receivers(self):
- """
- The mail should be sent to the email addresses specified in both
- settings.MANAGERS and settings.ADMINS.
- """
- call_command('sendtestemail', '--managers', '--admins')
- self.assertEqual(len(mail.outbox), 2)
- manager_mail = mail.outbox[0]
- self.assertEqual(sorted(manager_mail.recipients()), [
- 'admin_and_manager@example.com',
- 'manager@example.com',
- ])
- admin_mail = mail.outbox[1]
- self.assertEqual(sorted(admin_mail.recipients()), [
- 'admin@example.com',
- 'admin_and_manager@example.com',
- ])
|