diff --git a/tests/end2end/fixtures/webserver_sub.py b/tests/end2end/fixtures/webserver_sub.py index 117232068..fc1cc5264 100644 --- a/tests/end2end/fixtures/webserver_sub.py +++ b/tests/end2end/fixtures/webserver_sub.py @@ -341,7 +341,7 @@ class WSGIServer(cheroot.wsgi.Server): def unraisable_hook(unraisable: "sys.UnraisableHookArgs") -> None: if ( - sys.version_info[:2] == (3, 13) + sys.version_info[:2] >= (3, 13) and isinstance(unraisable.exc_value, OSError) and ( unraisable.exc_value.errno == errno.EBADF @@ -351,7 +351,19 @@ def unraisable_hook(unraisable: "sys.UnraisableHookArgs") -> None: and unraisable.exc_value.winerror == errno.WSAENOTSOCK ) ) - and unraisable.object.__qualname__ == "IOBase.__del__" + and ( + ( + # Python 3.14 + unraisable.object is None + and unraisable.err_msg.startswith( + "Exception ignored while calling deallocator