Fixed #19382 -- Stopped smtp backend raising exception when already closed

Thanks Sebastian Noack for the report and the initial patch.
This commit is contained in:
Claude Paroz 2013-01-03 20:41:45 +01:00
parent 1b3f832ab7
commit ffa50ca352
2 changed files with 12 additions and 0 deletions

View File

@ -60,6 +60,8 @@ class EmailBackend(BaseEmailBackend):
def close(self):
"""Closes the connection to the email server."""
if self.connection is None:
return
try:
try:
self.connection.quit()

View File

@ -492,6 +492,16 @@ class BaseEmailBackendTests(object):
self.assertEqual(message.get('from'), "tester")
self.assertEqual(message.get('to'), "django")
def test_close_connection(self):
"""
Test that connection can be closed (even when not explicitely opened)
"""
conn = mail.get_connection(username='', password='')
try:
conn.close()
except Exception as e:
self.fail("close() unexpectedly raised an exception: %s" % e)
class LocmemBackendTests(BaseEmailBackendTests, TestCase):
email_backend = 'django.core.mail.backends.locmem.EmailBackend'