]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-126499: test_ssl: Don't assume err.reason is a string (GH-126501) (GH-126573)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 11 Nov 2024 12:56:08 +0000 (13:56 +0100)
committerGitHub <noreply@github.com>
Mon, 11 Nov 2024 12:56:08 +0000 (13:56 +0100)
gh-126499: test_ssl: Don't assume err.reason is a string (GH-126501)

The skipping machinery called `getattr(err, "reason", "")` on an arbitrary
exception. As intermittent Buildbot failures show, sometimes it's set
to None.

Convert it to string for this specific check.
(cherry picked from commit 78ad7e632248dc989378cabeb797b9f3d940d9f2)

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

index 9b59ddd887aa0bbbdfa629223f175c2864c81c65..1775234266227a9f859c5274670cfeb155dd706d 100644 (file)
@@ -4817,7 +4817,7 @@ class TestPreHandshakeClose(unittest.TestCase):
             return  # Expect the full test setup to always work on Linux.
         if (isinstance(err, ConnectionResetError) or
             (isinstance(err, OSError) and err.errno == errno.EINVAL) or
-            re.search('wrong.version.number', getattr(err, "reason", ""), re.I)):
+            re.search('wrong.version.number', str(getattr(err, "reason", "")), re.I)):
             # On Windows the TCP RST leads to a ConnectionResetError
             # (ECONNRESET) which Linux doesn't appear to surface to userspace.
             # If wrap_socket() winds up on the "if connected:" path and doing