[Python-checkins] r85634 - in python/branches/release31-maint: Lib/test/test_urllibnet.py

senthil.kumaran python-checkins at python.org
Sun Oct 17 13:01:46 CEST 2010


Author: senthil.kumaran
Date: Sun Oct 17 13:01:46 2010
New Revision: 85634

Log:
Merged revisions 85630 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85630 | senthil.kumaran | 2010-10-17 16:22:12 +0530 (Sun, 17 Oct 2010) | 3 lines
  
  Fix Issue10119 - test_urllibnet failure when using support.transient_internet.
........


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Lib/test/test_urllibnet.py

Modified: python/branches/release31-maint/Lib/test/test_urllibnet.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_urllibnet.py	(original)
+++ python/branches/release31-maint/Lib/test/test_urllibnet.py	Sun Oct 17 13:01:46 2010
@@ -11,21 +11,6 @@
 import time
 
 
-def _open_with_retry(func, host, *args, **kwargs):
-    # Connecting to remote hosts is flaky.  Make it more robust
-    # by retrying the connection several times.
-    last_exc = None
-    for i in range(3):
-        try:
-            return func(host, *args, **kwargs)
-        except IOError as err:
-            last_exc = err
-            continue
-        except:
-            raise
-    raise last_exc
-
-
 class URLTimeoutTest(unittest.TestCase):
 
     TIMEOUT = 10.0
@@ -37,7 +22,8 @@
         socket.setdefaulttimeout(None)
 
     def testURLread(self):
-        f = _open_with_retry(urllib.request.urlopen, "http://www.python.org/")
+        with support.transient_internet("www.python.org"):
+            f = urllib.request.urlopen("http://www.python.org/")
         x = f.read()
 
 class urlopenNetworkTests(unittest.TestCase):
@@ -55,8 +41,10 @@
 
     """
 
-    def urlopen(self, *args):
-        return _open_with_retry(urllib.request.urlopen, *args)
+    def urlopen(self, *args, **kwargs):
+        resource = args[0]
+        with support.transient_internet(resource):
+            return urllib.request.urlopen(*args, **kwargs)
 
     def test_basic(self):
         # Simple test expected to pass.
@@ -119,7 +107,7 @@
             # test can't pass on Windows.
             return
         # Make sure fd returned by fileno is valid.
-        open_url = self.urlopen("http://www.python.org/")
+        open_url = self.urlopen("http://www.python.org/", timeout=None)
         fd = open_url.fileno()
         FILE = os.fdopen(fd, encoding='utf-8')
         try:
@@ -146,7 +134,9 @@
     """Tests urllib.request.urlretrieve using the network."""
 
     def urlretrieve(self, *args):
-        return _open_with_retry(urllib.request.urlretrieve, *args)
+        resource = args[0]
+        with support.transient_internet(resource):
+            return urllib.request.urlretrieve(*args)
 
     def test_basic(self):
         # Test basic functionality.


More information about the Python-checkins mailing list