evt.set()
try:
conn, addr = serv.accept()
+ conn.close()
except socket.timeout:
pass
- else:
- conn.close()
finally:
serv.close()
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()
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)
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()
- 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