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
This commit is contained in:
Jannis Leidel 2011-07-03 17:56:05 +00:00
parent 1d270ac8a3
commit 3bd23ee96f
2 changed files with 29 additions and 2 deletions

View File

@ -18,8 +18,14 @@ class EmailBackend(BaseEmailBackend):
super(EmailBackend, self).__init__(fail_silently=fail_silently) super(EmailBackend, self).__init__(fail_silently=fail_silently)
self.host = host or settings.EMAIL_HOST self.host = host or settings.EMAIL_HOST
self.port = port or settings.EMAIL_PORT self.port = port or settings.EMAIL_PORT
self.username = username or settings.EMAIL_HOST_USER if username is None:
self.password = password or settings.EMAIL_HOST_PASSWORD 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: if use_tls is None:
self.use_tls = settings.EMAIL_USE_TLS self.use_tls = settings.EMAIL_USE_TLS
else: else:

View File

@ -635,3 +635,24 @@ class SMTPBackendTests(BaseEmailBackendTests, TestCase):
def get_mailbox_content(self): def get_mailbox_content(self):
return self.server.get_sink() 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, '')