]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-140748: socket_helper.transient_internet: Unwrap UrlError.__cause__ (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 13 Nov 2025 12:58:46 +0000 (13:58 +0100)
committerGitHub <noreply@github.com>
Thu, 13 Nov 2025 12:58:46 +0000 (13:58 +0100)
(cherry picked from commit 75a1cbdd38b142b359849eae16a2ecc12f6b3881)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Lib/test/support/socket_helper.py

index 87941ee1791b4e795b188f124bd7cde1551f58de..a41e487f3e4bc52012425e30eab9b430a3b3a7ab 100644 (file)
@@ -259,6 +259,10 @@ def transient_internet(resource_name, *, timeout=_NOT_SET, errnos=()):
             #        raise OSError('socket error', msg) from msg
             elif len(a) >= 2 and isinstance(a[1], OSError):
                 err = a[1]
+            # The error can also be wrapped as __cause__:
+            #    raise URLError(f"ftp error: {exp}") from exp
+            elif isinstance(err, urllib.error.URLError) and err.__cause__:
+                err = err.__cause__
             else:
                 break
         filter_error(err)