From bcdfc6a1fa9eabb06b886a82218ebae3384784d0 Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Mon, 2 Mar 2015 06:01:01 +0200 Subject: [PATCH] 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. --- Lib/test/support/__init__.py | 2 ++ Lib/test/test_urllib2.py | 32 +++++++++++--------------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index d98068cac8a..32b56873622 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -1324,6 +1324,8 @@ def transient_internet(resource_name, *, timeout=30.0, errnos=()): 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 c746b9a6bb2..7d41ea11066 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -1469,17 +1469,18 @@ class MiscTests(unittest.TestCase): @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 @@ class RequestTests(unittest.TestCase): 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()