Author: jezdez
Date: 2011-07-03 10:56:05 -0700 (Sun, 03 Jul 2011)
New Revision: 16494

Modified:
   django/trunk/django/core/mail/backends/smtp.py
   django/trunk/tests/regressiontests/mail/tests.py
Log:
Fixed #15750 -- Handle empty mail server credentials gracefully. Thanks, 
LeandroSouza and bedmondmark.

Modified: django/trunk/django/core/mail/backends/smtp.py
===================================================================
--- django/trunk/django/core/mail/backends/smtp.py      2011-07-03 16:20:48 UTC 
(rev 16493)
+++ django/trunk/django/core/mail/backends/smtp.py      2011-07-03 17:56:05 UTC 
(rev 16494)
@@ -18,8 +18,14 @@
         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:

Modified: django/trunk/tests/regressiontests/mail/tests.py
===================================================================
--- django/trunk/tests/regressiontests/mail/tests.py    2011-07-03 16:20:48 UTC 
(rev 16493)
+++ django/trunk/tests/regressiontests/mail/tests.py    2011-07-03 17:56:05 UTC 
(rev 16494)
@@ -635,3 +635,24 @@
 
     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, '')

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to