if missing 'from_email', then 'log_message' will fail to build

This commit is contained in:
Patrick Kimber
2014-08-04 15:32:24 +01:00
parent 54d54a9e73
commit 0063fde2e5
2 changed files with 17 additions and 2 deletions

View File

@@ -112,11 +112,15 @@ class DjrillBackend(BaseEmailBackend):
message.mandrill_response = None message.mandrill_response = None
if not self.fail_silently: if not self.fail_silently:
from_email = msg_dict.get('from_email', None)
from_message = ""
if from_email:
from_message = ", from %s" % from_email
raise MandrillAPIError( raise MandrillAPIError(
status_code=response.status_code, status_code=response.status_code,
response=response, response=response,
log_message="Failed to send a message to %s, from %s" % log_message="Failed to send a message to %s%s" %
(msg_dict['to'], msg_dict['from_email'])) (msg_dict['to'], from_message))
return False return False
# add the response from mandrill to the EmailMessage so callers can inspect it # add the response from mandrill to the EmailMessage so callers can inspect it

View File

@@ -1,5 +1,6 @@
from django.core import mail from django.core import mail
from djrill import MandrillAPIError
from djrill.tests.mock_backend import DjrillBackendMockAPITestCase from djrill.tests.mock_backend import DjrillBackendMockAPITestCase
@@ -39,6 +40,16 @@ class DjrillMandrillSendTemplateTests(DjrillBackendMockAPITestCase):
self.assertFalse('from_email' in data['message']) self.assertFalse('from_email' in data['message'])
self.assertFalse('from_name' in data['message']) self.assertFalse('from_name' in data['message'])
def test_send_template_without_from_field_api_failure(self):
self.mock_post.return_value = self.MockResponse(status_code=400)
msg = mail.EmailMessage('Subject', 'Text Body',
'from@example.com', ['to@example.com'])
msg.template_name = "PERSONALIZED_SPECIALS"
msg.use_template_from = True
with self.assertRaises(MandrillAPIError):
msg.send()
self.assertEqual(sent, 0)
def test_send_template_without_subject_field(self): def test_send_template_without_subject_field(self):
msg = mail.EmailMessage('Subject', 'Text Body', msg = mail.EmailMessage('Subject', 'Text Body',
'from@example.com', ['to@example.com']) 'from@example.com', ['to@example.com'])