Issue #23387: Skip test_issue16464 if it raises an 5xx error.
Also, remove support.run_doctest() since there is no doctests in
test_urllib2 and urllib.request.
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index d98068c..32b5687 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -1324,6 +1324,8 @@
n = getattr(err, 'errno', None)
if (isinstance(err, socket.timeout) or
(isinstance(err, socket.gaierror) and n in gai_errnos) or
+ (isinstance(err, urllib.error.HTTPError) and
+ 500 <= err.code <= 599) or
(isinstance(err, urllib.error.URLError) and
"ConnectionRefusedError" in err.reason) or
n in captured_errnos):
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index c746b9a..7d41ea1 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -1469,17 +1469,18 @@
@unittest.skipUnless(support.is_resource_enabled('network'),
'test requires network access')
def test_issue16464(self):
- opener = urllib.request.build_opener()
- request = urllib.request.Request("http://www.example.com/")
- self.assertEqual(None, request.data)
+ with support.transient_internet("http://www.example.com/"):
+ opener = urllib.request.build_opener()
+ request = urllib.request.Request("http://www.example.com/")
+ self.assertEqual(None, request.data)
- opener.open(request, "1".encode("us-ascii"))
- self.assertEqual(b"1", request.data)
- self.assertEqual("1", request.get_header("Content-length"))
+ opener.open(request, "1".encode("us-ascii"))
+ self.assertEqual(b"1", request.data)
+ self.assertEqual("1", request.get_header("Content-length"))
- opener.open(request, "1234567890".encode("us-ascii"))
- self.assertEqual(b"1234567890", request.data)
- self.assertEqual("10", request.get_header("Content-length"))
+ opener.open(request, "1234567890".encode("us-ascii"))
+ self.assertEqual(b"1234567890", request.data)
+ self.assertEqual("10", request.get_header("Content-length"))
def test_HTTPError_interface(self):
"""
@@ -1630,17 +1631,6 @@
req = Request(url)
self.assertEqual(req.get_full_url(), req.full_url)
-def test_main(verbose=None):
- from test import test_urllib2
- support.run_doctest(test_urllib2, verbose)
- support.run_doctest(urllib.request, verbose)
- tests = (TrivialTests,
- OpenerDirectorTests,
- HandlerTests,
- MiscTests,
- RequestTests,
- RequestHdrsTests)
- support.run_unittest(*tests)
if __name__ == "__main__":
- test_main(verbose=True)
+ unittest.main()