From d327611b241e222922cd1161fbbebe4a23f8e485 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 11 Oct 2010 22:36:17 +0000 Subject: [PATCH] [1.2.X] Fixed #13494 -- Correctly concat an email subject prefix with a translation string. Thanks, hcarvalhoalves and Andi Albrecht. Backport from trunk (r14157). git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14159 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/mail/__init__.py | 4 ++-- tests/regressiontests/mail/tests.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/django/core/mail/__init__.py b/django/core/mail/__init__.py index f9d1210791a62..8a2d9bf096f91 100644 --- a/django/core/mail/__init__.py +++ b/django/core/mail/__init__.py @@ -87,7 +87,7 @@ def mail_admins(subject, message, fail_silently=False, connection=None): """Sends a message to the admins, as defined by the ADMINS setting.""" if not settings.ADMINS: return - EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message, + EmailMessage(u'%s%s' % (settings.EMAIL_SUBJECT_PREFIX, subject), message, settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS], connection=connection).send(fail_silently=fail_silently) @@ -96,7 +96,7 @@ def mail_managers(subject, message, fail_silently=False, connection=None): """Sends a message to the managers, as defined by the MANAGERS setting.""" if not settings.MANAGERS: return - EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message, + EmailMessage(u'%s%s' % (settings.EMAIL_SUBJECT_PREFIX, subject), message, settings.SERVER_EMAIL, [a[1] for a in settings.MANAGERS], connection=connection).send(fail_silently=fail_silently) diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py index 4585945b7ae5e..f13d280bd6859 100644 --- a/tests/regressiontests/mail/tests.py +++ b/tests/regressiontests/mail/tests.py @@ -316,3 +316,23 @@ def test_connection_arg(self): settings.ADMINS = old_admins settings.MANAGERS = old_managers + def test_mail_prefix(self): + """Test prefix argument in manager/admin mail.""" + # Regression for #13494. + old_admins = settings.ADMINS + old_managers = settings.MANAGERS + settings.ADMINS = settings.MANAGERS = [('nobody','nobody@example.com')] + + mail_managers(ugettext_lazy('Subject'), 'Content') + self.assertEqual(len(mail.outbox), 1) + message = mail.outbox[0] + self.assertEqual(message.subject, '[Django] Subject') + + mail.outbox = [] + mail_admins(ugettext_lazy('Subject'), 'Content') + self.assertEqual(len(mail.outbox), 1) + message = mail.outbox[0] + self.assertEqual(message.subject, '[Django] Subject') + + settings.ADMINS = old_admins + settings.MANAGERS = old_managers