From 9d2c5b0420bcbf00505a403241a2927cabc90805 Mon Sep 17 00:00:00 2001 From: Marc Tamlyn Date: Sun, 12 Jan 2014 23:33:48 +0000 Subject: [PATCH] Undelete the `return True` removed in 4e0a2fe. This is quite important otherwise we don't close our connections to the SMTP server. --- django/core/mail/backends/smtp.py | 1 + tests/mail/tests.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/django/core/mail/backends/smtp.py b/django/core/mail/backends/smtp.py index e72e372ca9..dc6afb0a81 100644 --- a/django/core/mail/backends/smtp.py +++ b/django/core/mail/backends/smtp.py @@ -57,6 +57,7 @@ class EmailBackend(BaseEmailBackend): self.connection.ehlo() if self.username and self.password: self.connection.login(self.username, self.password) + return True except smtplib.SMTPException: if not self.fail_silently: raise diff --git a/tests/mail/tests.py b/tests/mail/tests.py index ebb8ec5448..6a0172467c 100644 --- a/tests/mail/tests.py +++ b/tests/mail/tests.py @@ -894,6 +894,16 @@ class SMTPBackendTests(BaseEmailBackendTests, SimpleTestCase): self.assertRaisesMessage(SMTPException, 'SMTP AUTH extension not supported by server.', backend.open) + def test_server_open(self): + """ + Test that open() tells us whether it opened a connection. + """ + backend = smtp.EmailBackend(username='', password='') + self.assertFalse(backend.connection) + opened = backend.open() + backend.close() + self.assertTrue(opened) + def test_server_stopped(self): """ Test that closing the backend while the SMTP server is stopped doesn't