Issue #22596: support.transient_internet() now also catches
ConnectionRefusedError exceptions wrapped by urllib.error.URLError.

This change should fix sporadic failures in test_urllib2net.
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index f2c1a92..adebedd 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -25,6 +25,7 @@
 import tempfile
 import time
 import unittest
+import urllib.error
 import warnings
 
 try:
@@ -1307,6 +1308,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.URLError) and
+             "ConnectionRefusedError" in err.reason) or
             n in captured_errnos):
             if not verbose:
                 sys.stderr.write(denied.args[0] + "\n")
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 51b7fc5..6f78cea 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -229,6 +229,7 @@
                 with support.transient_internet(url):
                     try:
                         f = urlopen(url, req, TIMEOUT)
+                    # urllib.error.URLError is a subclass of OSError
                     except OSError as err:
                         if expected_err:
                             msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" %
@@ -236,12 +237,6 @@
                             self.assertIsInstance(err, expected_err, msg)
                         else:
                             raise
-                    except urllib.error.URLError as err:
-                        if isinstance(err[0], socket.timeout):
-                            print("<timeout: %s>" % url, file=sys.stderr)
-                            continue
-                        else:
-                            raise
                     else:
                         try:
                             with support.time_out, \