Issue 1776581. Minor corrections to smtplib, and two small tests.
Thanks Alan McIntyre.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index bb9c239..75093ae 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -298,7 +298,7 @@
def send(self, str):
"""Send `str' to the server."""
if self.debuglevel > 0: print>>stderr, 'send:', repr(str)
- if self.sock:
+ if hasattr(self, 'sock') and self.sock:
try:
self.sock.sendall(str)
except socket.error:
@@ -486,7 +486,7 @@
vrfy=verify
def expn(self, address):
- """SMTP 'verify' command -- checks for address validity."""
+ """SMTP 'expn' command -- expands a mailing list."""
self.putcmd("expn", quoteaddr(address))
return self.getreply()
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index e2b9b06..933523b 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -82,8 +82,9 @@
# to reference the nonexistent 'sock' attribute of the SMTP object
# causes an AttributeError)
smtp = smtplib.SMTP()
- self.assertRaises(AttributeError, smtp.ehlo)
- self.assertRaises(AttributeError, smtp.send, 'test msg')
+ self.assertRaises(smtplib.SMTPServerDisconnected, smtp.ehlo)
+ self.assertRaises(smtplib.SMTPServerDisconnected,
+ smtp.send, 'test msg')
def testLocalHostName(self):
# check that supplied local_hostname is used