From: Jesus Cea Date: Tue, 8 Nov 2011 15:06:44 +0000 (+0100) Subject: Partial patch for issue #11812: Take care of test_telnetlib.py X-Git-Tag: v2.7.3rc1~313 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cb65f3249a37e8e092eb566c77101cf961e23be6;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 04cb7fea10..15064c5a3d 100644 --- a/Lib/test/test_telnetlib.py +++ b/Lib/test/test_telnetlib.py @@ -33,10 +33,9 @@ def server(evt, serv, dataq=None): data += item written = conn.send(data) data = data[written:] + conn.close() except socket.timeout: pass - else: - conn.close() finally: serv.close() @@ -45,9 +44,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 = test_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() @@ -63,7 +63,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) @@ -81,13 +81,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 9b1e5d11c3..21fdbdce81 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -359,6 +359,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_robotparser when mueblesmoraleda.com is flaky and