Kaydet (Commit) 1f2995b0 authored tarafından Neal Norwitz's avatar Neal Norwitz

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.
üst e70bb8d6
...@@ -107,16 +107,21 @@ class TimeoutTestCase(unittest.TestCase): ...@@ -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)
......
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