mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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',
 | |
|         ])
 |