]> granicus.if.org Git - python/commitdiff
Merged revisions 80256 via svnmerge from
authorSenthil Kumaran <orsenthil@gmail.com>
Tue, 20 Apr 2010 10:40:21 +0000 (10:40 +0000)
committerSenthil Kumaran <orsenthil@gmail.com>
Tue, 20 Apr 2010 10:40:21 +0000 (10:40 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80256 | senthil.kumaran | 2010-04-20 16:05:49 +0530 (Tue, 20 Apr 2010) | 9 lines

  Merged revisions 80236 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80236 | senthil.kumaran | 2010-04-20 12:24:59 +0530 (Tue, 20 Apr 2010) | 3 lines

    Fix Issue8460: Victor's patch to add timeout in test_urllib2net test_urls.
  ........
................

Lib/test/test_urllib2net.py

index 59a73c92d3e9896d027eba4cefd7b0f2f236ded5..0f109dc22acf1440d23a972d760b5ff6a5d658b3 100644 (file)
@@ -9,6 +9,9 @@ import socket
 import sys
 import urllib.error
 import urllib.request
+import sys
+
+TIMEOUT = 60  # seconds
 
 
 def _retry_thrice(func, exc, *args, **kwargs):
@@ -166,20 +169,29 @@ class OtherNetworkTests(unittest.TestCase):
                 req = expected_err = None
             debug(url)
             try:
-                f = urlopen(url, req)
+                f = urlopen(url, req, TIMEOUT)
             except EnvironmentError as err:
                 debug(err)
                 if expected_err:
                     msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" %
                            (expected_err, url, req, type(err), err))
                     self.assertTrue(isinstance(err, expected_err), msg)
+            except urllib.error.URLError as err:
+                if isinstance(err[0], socket.timeout):
+                    print("<timeout: %s>" % url, file=sys.stderr)
+                    continue
+                else:
+                    raise
             else:
-                with support.time_out, \
-                     support.socket_peer_reset, \
-                     support.ioerror_peer_reset:
-                    buf = f.read()
+                try:
+                    with support.time_out, \
+                         support.socket_peer_reset, \
+                         support.ioerror_peer_reset:
+                        buf = f.read()
+                        debug("read %d bytes" % len(buf))
+                except socket.timeout:
+                    print("<timeout: %s>" % url, file=sys.stderr)
                 f.close()
-                debug("read %d bytes" % len(buf))
             debug("******** next url coming up...")
             time.sleep(0.1)