]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-135571: Guard `_hashlib` usage in `test_hashlib.py` (GH-135572) (#136041)
authorBénédikt Tran <10796600+picnixz@users.noreply.github.com>
Sat, 28 Jun 2025 08:15:49 +0000 (10:15 +0200)
committerGitHub <noreply@github.com>
Sat, 28 Jun 2025 08:15:49 +0000 (10:15 +0200)
(cherry picked from commit 065194c1a971b59547f1bb2cc64760c4bf0ee674)

Co-authored-by: Will Childs-Klein <willck93@gmail.com>
Lib/test/test_hashlib.py

index 56d2f70021235f6ece164429f5e6ddf92bb06e1e..8eb0ac230bc770f5a70591ecbf1b4c852dae89b2 100644 (file)
@@ -264,7 +264,10 @@ class HashLibTestCase(unittest.TestCase):
                 hashlib.new(digest_name, b'')
                 hashlib.new(digest_name, data=b'')
                 hashlib.new(digest_name, string=b'')
-                if self._hashlib:
+                # Make sure that _hashlib contains the constructor
+                # to test when using a combination of libcrypto and
+                # interned hash implementations.
+                if self._hashlib and digest_name in self._hashlib._constructors:
                     self._hashlib.new(digest_name, b'')
                     self._hashlib.new(digest_name, data=b'')
                     self._hashlib.new(digest_name, string=b'')
@@ -316,7 +319,8 @@ class HashLibTestCase(unittest.TestCase):
                 with self.subTest(digest_name, args=args, kwds=kwds):
                     with self.assertRaisesRegex(TypeError, errmsg):
                         hashlib.new(digest_name, *args, **kwds)
-                    if self._hashlib:
+                    if (self._hashlib and
+                            digest_name in self._hashlib._constructors):
                         with self.assertRaisesRegex(TypeError, errmsg):
                             self._hashlib.new(digest_name, *args, **kwds)