From 5f7772cd1f21fb47eb9027673aabbd7edc2e7618 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Wed, 29 Oct 2025 11:37:35 +0100 Subject: [PATCH 1/2] socket_helper.transient_internet: Unwrap UrlError.__cause__ --- Lib/test/support/socket_helper.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/test/support/socket_helper.py b/Lib/test/support/socket_helper.py index 87941ee1791b4e..e05ef0e1420e19 100644 --- a/Lib/test/support/socket_helper.py +++ b/Lib/test/support/socket_helper.py @@ -259,6 +259,10 @@ def filter_error(err): # 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) From 920dd4be7e2ad93aaeef2a823945eb314dab101e Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Wed, 29 Oct 2025 12:48:23 +0100 Subject: [PATCH 2/2] Typo fix --- Lib/test/support/socket_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/support/socket_helper.py b/Lib/test/support/socket_helper.py index e05ef0e1420e19..a41e487f3e4bc5 100644 --- a/Lib/test/support/socket_helper.py +++ b/Lib/test/support/socket_helper.py @@ -261,7 +261,7 @@ def filter_error(err): 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__: + elif isinstance(err, urllib.error.URLError) and err.__cause__: err = err.__cause__ else: break