blob: 43a363ea737c2cec23520d0dc18e5e6e2ff8f2f6 (
plain)
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
|
"""
Backend for test environment.
"""
import copy
from django.core import mail
from django.core.mail.backends.base import BaseEmailBackend
class EmailBackend(BaseEmailBackend):
"""
An email backend for use during test sessions.
The test connection stores email messages in a dummy outbox,
rather than sending them out on the wire.
The dummy outbox is accessible through the outbox instance attribute.
"""
# RemovedInDjango70Warning: *args. (The only supported posarg will be
# removed from BaseEmailBackend in Django 7.0.)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not hasattr(mail, "outbox"):
mail.outbox = []
def send_messages(self, messages):
"""Redirect messages to the dummy outbox"""
msg_count = 0
for message in messages:
message.message() # Trigger header validation.
msg_copy = copy.deepcopy(message)
msg_copy.sent_using = self.alias
mail.outbox.append(msg_copy)
msg_count += 1
return msg_count
|