From: Jesus Cea Date: Tue, 8 Nov 2011 15:24:43 +0000 (+0100) Subject: Partial patch for issue #11812: Take care of test_telnetlib.py X-Git-Tag: v3.3.0a1~900^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc91b469512aec60e26778114442c174b7a146bc;p=python Partial patch for issue #11812: Take care of test_telnetlib.py --- diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py index 0f0b2ac82d..87418f514e 100644 --- a/Lib/test/test_telnetlib.py +++ b/Lib/test/test_telnetlib.py @@ -15,10 +15,9 @@ def server(evt, serv): evt.set() try: conn, addr = serv.accept() + conn.close() except socket.timeout: pass - else: - conn.close() finally: serv.close() @@ -27,9 +26,10 @@ class GeneralTests(TestCase): def setUp(self): self.evt = threading.Event() self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sock.settimeout(3) + self.sock.settimeout(60) # Safety net. Look issue 11812 self.port = support.bind_port(self.sock) self.thread = threading.Thread(target=server, args=(self.evt,self.sock)) + self.thread.setDaemon(True) self.thread.start() self.evt.wait() @@ -45,7 +45,7 @@ class GeneralTests(TestCase): self.assertTrue(socket.getdefaulttimeout() is None) socket.setdefaulttimeout(30) try: - telnet = telnetlib.Telnet("localhost", self.port) + telnet = telnetlib.Telnet(HOST, self.port) finally: socket.setdefaulttimeout(None) self.assertEqual(telnet.sock.gettimeout(), 30) @@ -63,13 +63,13 @@ class GeneralTests(TestCase): telnet.sock.close() def testTimeoutValue(self): - telnet = telnetlib.Telnet("localhost", self.port, timeout=30) + telnet = telnetlib.Telnet(HOST, self.port, timeout=30) self.assertEqual(telnet.sock.gettimeout(), 30) telnet.sock.close() def testTimeoutOpen(self): telnet = telnetlib.Telnet() - telnet.open("localhost", self.port, timeout=30) + telnet.open(HOST, self.port, timeout=30) self.assertEqual(telnet.sock.gettimeout(), 30) telnet.sock.close() diff --git a/Misc/NEWS b/Misc/NEWS index 5529786d80..19e7960688 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -527,6 +527,9 @@ Tests - Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary failure in name resolution. +- Issue #11812: Solve transient socket failure to connect to 'localhost' + in test_telnetlib.py. + - Solved a potential deadlock in test_telnetlib.py. Related to issue #11812. - Avoid failing in test_urllibnet.test_bad_address when some overzealous