mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
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. ........
This commit is contained in:
parent
397cd8a1fc
commit
378e6db834
1 changed files with 10 additions and 20 deletions
|
@ -11,21 +11,6 @@ import email.message
|
||||||
import time
|
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):
|
class URLTimeoutTest(unittest.TestCase):
|
||||||
|
|
||||||
TIMEOUT = 10.0
|
TIMEOUT = 10.0
|
||||||
|
@ -37,7 +22,8 @@ class URLTimeoutTest(unittest.TestCase):
|
||||||
socket.setdefaulttimeout(None)
|
socket.setdefaulttimeout(None)
|
||||||
|
|
||||||
def testURLread(self):
|
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()
|
x = f.read()
|
||||||
|
|
||||||
class urlopenNetworkTests(unittest.TestCase):
|
class urlopenNetworkTests(unittest.TestCase):
|
||||||
|
@ -55,8 +41,10 @@ class urlopenNetworkTests(unittest.TestCase):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def urlopen(self, *args):
|
def urlopen(self, *args, **kwargs):
|
||||||
return _open_with_retry(urllib.request.urlopen, *args)
|
resource = args[0]
|
||||||
|
with support.transient_internet(resource):
|
||||||
|
return urllib.request.urlopen(*args, **kwargs)
|
||||||
|
|
||||||
def test_basic(self):
|
def test_basic(self):
|
||||||
# Simple test expected to pass.
|
# Simple test expected to pass.
|
||||||
|
@ -119,7 +107,7 @@ class urlopenNetworkTests(unittest.TestCase):
|
||||||
# test can't pass on Windows.
|
# test can't pass on Windows.
|
||||||
return
|
return
|
||||||
# Make sure fd returned by fileno is valid.
|
# 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()
|
fd = open_url.fileno()
|
||||||
FILE = os.fdopen(fd, encoding='utf-8')
|
FILE = os.fdopen(fd, encoding='utf-8')
|
||||||
try:
|
try:
|
||||||
|
@ -146,7 +134,9 @@ class urlretrieveNetworkTests(unittest.TestCase):
|
||||||
"""Tests urllib.request.urlretrieve using the network."""
|
"""Tests urllib.request.urlretrieve using the network."""
|
||||||
|
|
||||||
def urlretrieve(self, *args):
|
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):
|
def test_basic(self):
|
||||||
# Test basic functionality.
|
# Test basic functionality.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue