summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-07-03 17:56:05 +0000
committerJannis Leidel <jannis@leidel.info>2011-07-03 17:56:05 +0000
commit3bd23ee96fdff0572568eaa42d69c1ce2e46cc18 (patch)
tree85f1dd0e83c16886441be419d25358ff5de4735a
parent1d270ac8a34b9a1f562d2e46411121499caa6e41 (diff)
Fixed #15750 -- Handle empty mail server credentials gracefully. Thanks, LeandroSouza and bedmondmark.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16494 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/core/mail/backends/smtp.py10
-rw-r--r--tests/regressiontests/mail/tests.py21
2 files changed, 29 insertions, 2 deletions
diff --git a/django/core/mail/backends/smtp.py b/django/core/mail/backends/smtp.py
index bb184ab312..3ee283b5f1 100644
--- a/django/core/mail/backends/smtp.py
+++ b/django/core/mail/backends/smtp.py
@@ -18,8 +18,14 @@ class EmailBackend(BaseEmailBackend):
super(EmailBackend, self).__init__(fail_silently=fail_silently)
self.host = host or settings.EMAIL_HOST
self.port = port or settings.EMAIL_PORT
- self.username = username or settings.EMAIL_HOST_USER
- self.password = password or settings.EMAIL_HOST_PASSWORD
+ if username is None:
+ self.username = settings.EMAIL_HOST_USER
+ else:
+ self.username = username
+ if password is None:
+ self.password = settings.EMAIL_HOST_PASSWORD
+ else:
+ self.password = password
if use_tls is None:
self.use_tls = settings.EMAIL_USE_TLS
else:
diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py
index 5d5f52b6cd..08eb7b9f45 100644
--- a/tests/regressiontests/mail/tests.py
+++ b/tests/regressiontests/mail/tests.py
@@ -635,3 +635,24 @@ class SMTPBackendTests(BaseEmailBackendTests, TestCase):
def get_mailbox_content(self):
return self.server.get_sink()
+
+ @override_settings(EMAIL_HOST_USER="not empty username",
+ EMAIL_HOST_PASSWORD="not empty password")
+ def test_email_authentication_use_settings(self):
+ backend = smtp.EmailBackend()
+ self.assertEqual(backend.username, 'not empty username')
+ self.assertEqual(backend.password, 'not empty password')
+
+ @override_settings(EMAIL_HOST_USER="not empty username",
+ EMAIL_HOST_PASSWORD="not empty password")
+ def test_email_authentication_override_settings(self):
+ backend = smtp.EmailBackend(username='username', password='password')
+ self.assertEqual(backend.username, 'username')
+ self.assertEqual(backend.password, 'password')
+
+ @override_settings(EMAIL_HOST_USER="not empty username",
+ EMAIL_HOST_PASSWORD="not empty password")
+ def test_email_disabled_authentication(self):
+ backend = smtp.EmailBackend(username='', password='')
+ self.assertEqual(backend.username, '')
+ self.assertEqual(backend.password, '')