]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Try to make this test a little more robust and not fail with:
authorNeal Norwitz <nnorwitz@gmail.com>
Sun, 23 Mar 2008 03:43:33 +0000 (03:43 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sun, 23 Mar 2008 03:43:33 +0000 (03:43 +0000)
  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.

Lib/test/test_timeout.py

index 2b32b92d3faea1e47aa76707165ba69f1d67043c..da4602f8258c7b44372f98f07bd464579b3cc777 100644 (file)
@@ -107,16 +107,21 @@ class TimeoutTestCase(unittest.TestCase):
         self.sock.close()
 
     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.
         # Pick a host that should be farther away.
         if (socket.getfqdn().split('.')[-2:] == ['python', 'org'] or
             socket.getfqdn().split('.')[-2:-1] == ['xs4all']):
             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()
         self.failUnlessRaises(socket.error, self.sock.connect,
                 self.addr_remote)