Try to make this test a little more robust and not fail with:
timeout (10.0025) is more than 2 seconds more than expected (0.001) I'm assuming this problem is caused by DNS lookup. This change does a DNS lookup of the hostname before trying to connect, so the time is not included.
This commit is contained in:
parent
e70bb8d6f2
commit
1f2995b014
|
@ -107,16 +107,21 @@ class TimeoutTestCase(unittest.TestCase):
|
||||||
self.sock.close()
|
self.sock.close()
|
||||||
|
|
||||||
def testConnectTimeout(self):
|
def testConnectTimeout(self):
|
||||||
# Test connect() timeout
|
|
||||||
_timeout = 0.001
|
|
||||||
self.sock.settimeout(_timeout)
|
|
||||||
|
|
||||||
# If we are too close to www.python.org, this test will fail.
|
# If we are too close to www.python.org, this test will fail.
|
||||||
# Pick a host that should be farther away.
|
# Pick a host that should be farther away.
|
||||||
if (socket.getfqdn().split('.')[-2:] == ['python', 'org'] or
|
if (socket.getfqdn().split('.')[-2:] == ['python', 'org'] or
|
||||||
socket.getfqdn().split('.')[-2:-1] == ['xs4all']):
|
socket.getfqdn().split('.')[-2:-1] == ['xs4all']):
|
||||||
self.addr_remote = ('tut.fi', 80)
|
self.addr_remote = ('tut.fi', 80)
|
||||||
|
|
||||||
|
# Lookup the IP address to avoid including the DNS lookup time
|
||||||
|
# with the connect time. This avoids failing the assertion that
|
||||||
|
# the timeout occurred fast enough.
|
||||||
|
self.addr_remote = (socket.gethostbyname(self.addr_remote[0]), 80)
|
||||||
|
|
||||||
|
# Test connect() timeout
|
||||||
|
_timeout = 0.001
|
||||||
|
self.sock.settimeout(_timeout)
|
||||||
|
|
||||||
_t1 = time.time()
|
_t1 = time.time()
|
||||||
self.failUnlessRaises(socket.error, self.sock.connect,
|
self.failUnlessRaises(socket.error, self.sock.connect,
|
||||||
self.addr_remote)
|
self.addr_remote)
|
||||||
|
|
Loading…
Reference in New Issue