Skip to content

Commit

Permalink
fix: prepare email without template, but with context (#468)
Browse files Browse the repository at this point in the history
  • Loading branch information
pacahon authored Jun 12, 2024
1 parent 3a5801b commit 24276ea
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion post_office/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def prepare_email_message(self):
if get_override_recipients():
self.to = get_override_recipients()

if self.context is not None:
if self.template is not None and self.context is not None:
engine = get_template_engine()
subject = engine.from_string(self.template.subject).render(self.context)
plaintext_message = engine.from_string(self.template.content).render(self.context)
Expand Down
14 changes: 14 additions & 0 deletions post_office/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,20 @@ def test_email_message_render(self):
self.assertEqual(message.body, 'Content test')
self.assertEqual(message.alternatives[0][0], 'HTML test')

def test_email_message_prepare_without_template_and_with_context(self):
"""
Ensure Email instance without template but with context is properly prepared.
"""
context = {'name': 'test'}
email = Email.objects.create(to=['[email protected]'], template=None,
subject='Subject test', message='Content test',
html_message='HTML test',
from_email='[email protected]', context=context)
message = email.email_message()
self.assertEqual(message.subject, 'Subject test')
self.assertEqual(message.body, 'Content test')
self.assertEqual(message.alternatives[0][0], 'HTML test')

def test_dispatch(self):
"""
Ensure that email.dispatch() actually sends out the email
Expand Down

0 comments on commit 24276ea

Please sign in to comment.