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()
