From: Senthil Kumaran Date: Sun, 17 Oct 2010 11:01:46 +0000 (+0000) Subject: Merged revisions 85630 via svnmerge from X-Git-Tag: v3.1.3rc1~107 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=378e6db834488d585f90f358d23d7d33a81ec854;p=python 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. ........ --- diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py index 37cad422ed..bac2049161 100644 --- a/Lib/test/test_urllibnet.py +++ b/Lib/test/test_urllibnet.py @@ -11,21 +11,6 @@ import email.message 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 @@ class URLTimeoutTest(unittest.TestCase): 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 @@ class urlopenNetworkTests(unittest.TestCase): """ - 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 @@ class urlopenNetworkTests(unittest.TestCase): # 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 @@ class urlretrieveNetworkTests(unittest.TestCase): """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.