[Python-checkins] cpython (2.7): Partial patch for issue #11812: Take care of test_telnetlib.py

jesus.cea python-checkins at python.org
Tue Nov 8 16:39:35 CET 2011


http://hg.python.org/cpython/rev/554802e562fa
changeset:   73450:554802e562fa
branch:      2.7
user:        Jesus Cea <jcea at jcea.es>
date:        Tue Nov 08 16:06:44 2011 +0100
summary:
  Partial patch for issue #11812: Take care of test_telnetlib.py

files:
  Lib/test/test_telnetlib.py |  12 ++++++------
  Misc/NEWS                  |   3 +++
  2 files changed, 9 insertions(+), 6 deletions(-)


diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -33,10 +33,9 @@
                     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 @@
     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 @@
         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 @@
         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
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -359,6 +359,9 @@
 - 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

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list