The test email backend (locmem) should perform more validation of messages
Currently the locmem email backend only stores EmailMessage instances on mail.outbox, and does not perform as much validation as other backends.
In particular, calling .message() on an EmailMessage instance creates a SafeMIMEText object which forbids multiline headers. All email backends call .message() except for the locmem backend. This is a opportunity for deployment surprises where sending an email would work during the tests but not in production if the subject is constructed using a template that has an EOL marker at the end of the file.
The attached patch naively calls .message() on each outgoing message to trigger this validation. This should be backwards-compatible since that error would be raised anyways when sending emails with a proper backend.
An alternative solution to this issue (email subjects ending with a newline) could be to strip all headers but this is a more intrusive change.
Change History
(6)
| Triage Stage: |
Unreviewed → Accepted
|
| Triage Stage: |
Accepted → Ready for checkin
|
| Resolution: |
→ fixed
|
| Status: |
new → closed
|
Move test in LocmemBackendTests