From: Andrew Svetlov Date: Mon, 17 Dec 2012 16:57:16 +0000 (+0200) Subject: Issue #16647: save socket error details in LMTP.connect() X-Git-Tag: v3.4.0a1~1833 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2ade6f24cb4ac21b9da36b0e1ce7414463c9f5d5;p=python Issue #16647: save socket error details in LMTP.connect() Initial patch by Serhiy Storchaka. --- 2ade6f24cb4ac21b9da36b0e1ce7414463c9f5d5 diff --cc Lib/smtplib.py index d37b0e247d,c949d77b51..44a144cd8c --- a/Lib/smtplib.py +++ b/Lib/smtplib.py @@@ -309,7 -309,7 +309,7 @@@ class SMTP try: port = int(port) except ValueError: -- raise socket.error("nonnumeric port") ++ raise OSError("nonnumeric port") if not port: port = self.default_port if self.debuglevel > 0: @@@ -330,7 -330,7 +330,7 @@@ s = s.encode("ascii") try: self.sock.sendall(s) -- except socket.error: ++ except OSError: self.close() raise SMTPServerDisconnected('Server not connected') else: @@@ -363,7 -363,7 +363,7 @@@ while 1: try: line = self.file.readline() -- except socket.error as e: ++ except OSError as e: self.close() raise SMTPServerDisconnected("Connection unexpectedly closed: " + str(e)) @@@ -920,7 -920,7 +920,7 @@@ class LMTP(SMTP) self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.file = None self.sock.connect(host) - except socket.error as msg: - except socket.error: ++ except OSError: if self.debuglevel > 0: print('connect fail:', host, file=stderr) if self.sock: diff --cc Lib/test/mock_socket.py index d09e78c1d5,d09e78c1d5..8ef0ec8c8d --- a/Lib/test/mock_socket.py +++ b/Lib/test/mock_socket.py @@@ -140,12 -140,12 +140,8 @@@ def gethostbyname(name) return "" --class gaierror(Exception): -- pass -- -- --class error(Exception): -- pass ++gaierror = socket_module.gaierror ++error = socket_module.error # Constants diff --cc Lib/test/test_smtplib.py index befc49e9d3,befc49e9d3..6fe2df96df --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@@ -542,9 -542,9 +542,9 @@@ class NonConnectingTests(unittest.TestC def testNonnumericPort(self): # check that non-numeric port raises socket.error -- self.assertRaises(mock_socket.error, smtplib.SMTP, ++ self.assertRaises(OSError, smtplib.SMTP, "localhost", "bogus") -- self.assertRaises(mock_socket.error, smtplib.SMTP, ++ self.assertRaises(OSError, smtplib.SMTP, "localhost:bogus")