mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
Merged revisions 64002-64003,64012,64036-64037,64047,64050-64052,64054-64055,64066,64071 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r64002 | travis.oliphant | 2008-06-07 00:33:21 +0200 (Sat, 07 Jun 2008) | 1 line Add long double check support to configure test. ........ r64003 | travis.oliphant | 2008-06-07 00:39:47 +0200 (Sat, 07 Jun 2008) | 1 line Remove locking part of new buffer protocol. ........ r64012 | facundo.batista | 2008-06-07 15:36:36 +0200 (Sat, 07 Jun 2008) | 4 lines Finished bug #2451. Fixed the retrying part to make it more robust. ........ r64036 | georg.brandl | 2008-06-08 10:54:40 +0200 (Sun, 08 Jun 2008) | 2 lines #3028: tokenize passes the physical line. ........ r64037 | georg.brandl | 2008-06-08 10:59:38 +0200 (Sun, 08 Jun 2008) | 2 lines Argh, I read it wrong. Reverted 64036 and added a clarifying remark. ........ r64047 | raymond.hettinger | 2008-06-09 03:28:30 +0200 (Mon, 09 Jun 2008) | 1 line Issue3065: Fixed pickling of named tuples. Added tests. ........ r64050 | raymond.hettinger | 2008-06-09 08:54:45 +0200 (Mon, 09 Jun 2008) | 1 line Issue #2138: Add math.factorial(). ........ r64051 | raymond.hettinger | 2008-06-09 10:33:37 +0200 (Mon, 09 Jun 2008) | 1 line Let set.union() and set.update() accept multiple inputs. ........ r64052 | raymond.hettinger | 2008-06-09 11:29:17 +0200 (Mon, 09 Jun 2008) | 1 line Address double-rounding scenarios by setting all variables to long doubles. ........ r64054 | raymond.hettinger | 2008-06-09 13:24:47 +0200 (Mon, 09 Jun 2008) | 1 line Unhappy buildbots. Revert 64052. Long doubles have unexpected effects on some builds. ........ r64055 | raymond.hettinger | 2008-06-09 15:07:27 +0200 (Mon, 09 Jun 2008) | 1 line Let set.intersection() and set.intersection_update() take multiple input arguments. ........ r64066 | robert.schuppenies | 2008-06-10 12:10:31 +0200 (Tue, 10 Jun 2008) | 2 lines Issue 3048: Fixed sys.getsizeof for unicode objects. ........ r64071 | thomas.heller | 2008-06-10 16:07:12 +0200 (Tue, 10 Jun 2008) | 3 lines NEWS entry for: Add an optional 'offset' parameter to byref, defaulting to zero. ........
This commit is contained in:
parent
e932c5c813
commit
c28e1fa71f
13 changed files with 277 additions and 57 deletions
|
@ -11,19 +11,25 @@ import os
|
|||
import mimetools
|
||||
|
||||
|
||||
def _urlopen_with_retry(host, *args, **kwargs):
|
||||
# Connecting to remote hosts is flaky. Make it more robust
|
||||
# by retrying the connection several times.
|
||||
def _retry_thrice(func, exc, *args, **kwargs):
|
||||
for i in range(3):
|
||||
try:
|
||||
return urllib2.urlopen(host, *args, **kwargs)
|
||||
except urllib2.URLError as e:
|
||||
return func(*args, **kwargs)
|
||||
except exc as e:
|
||||
last_exc = e
|
||||
continue
|
||||
except:
|
||||
raise
|
||||
raise last_exc
|
||||
|
||||
def _wrap_with_retry_thrice(func, exc):
|
||||
def wrapped(*args, **kwargs):
|
||||
return _retry_thrice(func, exc, *args, **kwargs)
|
||||
return wrapped
|
||||
|
||||
# Connecting to remote hosts is flaky. Make it more robust by retrying
|
||||
# the connection several times.
|
||||
_urlopen_with_retry = _wrap_with_retry_thrice(urllib2.urlopen, urllib2.URLError)
|
||||
|
||||
|
||||
class AuthTests(unittest.TestCase):
|
||||
|
@ -114,7 +120,7 @@ class OtherNetworkTests(unittest.TestCase):
|
|||
'file:'+sanepathname2url(os.path.abspath(TESTFN)),
|
||||
('file:///nonsensename/etc/passwd', None, urllib2.URLError),
|
||||
]
|
||||
self._test_urls(urls, self._extra_handlers(), urllib2.urlopen)
|
||||
self._test_urls(urls, self._extra_handlers(), retry=True)
|
||||
finally:
|
||||
os.remove(TESTFN)
|
||||
|
||||
|
@ -146,13 +152,15 @@ class OtherNetworkTests(unittest.TestCase):
|
|||
|
||||
## self._test_urls(urls, self._extra_handlers()+[bauth, dauth])
|
||||
|
||||
def _test_urls(self, urls, handlers, urlopen=_urlopen_with_retry):
|
||||
def _test_urls(self, urls, handlers, retry=True):
|
||||
import socket
|
||||
import time
|
||||
import logging
|
||||
debug = logging.getLogger("test_urllib2").debug
|
||||
|
||||
urllib2.install_opener(urllib2.build_opener(*handlers))
|
||||
urlopen = urllib2.build_opener(*handlers).open
|
||||
if retry:
|
||||
urlopen = _wrap_with_retry_thrice(urlopen, urllib2.URLError)
|
||||
|
||||
for url in urls:
|
||||
if isinstance(url, tuple):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue