1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
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",
],
)
|