]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged revisions 84604 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 7 Sep 2010 21:44:17 +0000 (21:44 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 7 Sep 2010 21:44:17 +0000 (21:44 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84604 | antoine.pitrou | 2010-09-07 23:43:31 +0200 (mar., 07 sept. 2010) | 3 lines

  Also catch some gaierrors
........

Lib/test/support.py

index 8ef87c28b49ebf43649e4eef1e132ff96b5c4acb..3bb08d94edea79a0a979dc674f936d7bec5367a5 100644 (file)
@@ -624,16 +624,25 @@ def transient_internet(resource_name, *, timeout=30.0, errnos=()):
         ('ENETUNREACH', 101),
         ('ETIMEDOUT', 110),
     ]
+    default_gai_errnos = [
+        ('EAI_NONAME', -2),
+        ('EAI_NODATA', -5),
+    ]
 
     denied = ResourceDenied("Resource '%s' is not available" % resource_name)
     captured_errnos = errnos
+    gai_errnos = []
     if not captured_errnos:
         captured_errnos = [getattr(errno, name, num)
                            for (name, num) in default_errnos]
+        gai_errnos = [getattr(socket, name, num)
+                      for (name, num) in default_gai_errnos]
 
     def filter_error(err):
+        n = getattr(err, 'errno', None)
         if (isinstance(err, socket.timeout) or
-            getattr(err, 'errno', None) in captured_errnos):
+            (isinstance(err, socket.gaierror) and n in gai_errnos) or
+            n in captured_errnos):
             if not verbose:
                 sys.stderr.write(denied.args[0] + "\n")
             raise denied from err