Commit 44adecf9 authored by Jesus Cea's avatar Jesus Cea

Partial patch for issue #11812: Take care of test_telnetlib.py

parent d354ee65
...@@ -33,10 +33,9 @@ def server(evt, serv, dataq=None): ...@@ -33,10 +33,9 @@ def server(evt, serv, dataq=None):
data += item data += item
written = conn.send(data) written = conn.send(data)
data = data[written:] data = data[written:]
conn.close()
except socket.timeout: except socket.timeout:
pass pass
else:
conn.close()
finally: finally:
serv.close() serv.close()
...@@ -45,9 +44,10 @@ class GeneralTests(TestCase): ...@@ -45,9 +44,10 @@ class GeneralTests(TestCase):
def setUp(self): def setUp(self):
self.evt = threading.Event() self.evt = threading.Event()
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 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.port = test_support.bind_port(self.sock)
self.thread = threading.Thread(target=server, args=(self.evt,self.sock)) self.thread = threading.Thread(target=server, args=(self.evt,self.sock))
self.thread.setDaemon(True)
self.thread.start() self.thread.start()
self.evt.wait() self.evt.wait()
...@@ -63,7 +63,7 @@ class GeneralTests(TestCase): ...@@ -63,7 +63,7 @@ class GeneralTests(TestCase):
self.assertTrue(socket.getdefaulttimeout() is None) self.assertTrue(socket.getdefaulttimeout() is None)
socket.setdefaulttimeout(30) socket.setdefaulttimeout(30)
try: try:
telnet = telnetlib.Telnet("localhost", self.port) telnet = telnetlib.Telnet(HOST, self.port)
finally: finally:
socket.setdefaulttimeout(None) socket.setdefaulttimeout(None)
self.assertEqual(telnet.sock.gettimeout(), 30) self.assertEqual(telnet.sock.gettimeout(), 30)
...@@ -81,13 +81,13 @@ class GeneralTests(TestCase): ...@@ -81,13 +81,13 @@ class GeneralTests(TestCase):
telnet.sock.close() telnet.sock.close()
def testTimeoutValue(self): 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) self.assertEqual(telnet.sock.gettimeout(), 30)
telnet.sock.close() telnet.sock.close()
def testTimeoutOpen(self): def testTimeoutOpen(self):
telnet = telnetlib.Telnet() telnet = telnetlib.Telnet()
telnet.open("localhost", self.port, timeout=30) telnet.open(HOST, self.port, timeout=30)
self.assertEqual(telnet.sock.gettimeout(), 30) self.assertEqual(telnet.sock.gettimeout(), 30)
telnet.sock.close() telnet.sock.close()
......
...@@ -359,6 +359,9 @@ Tests ...@@ -359,6 +359,9 @@ Tests
- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary - Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
failure in name resolution. 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. - Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and - Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment