https://github.com/python/cpython/commit/948fd7e5c084274c3945d2004a7fffd19c907a15
commit: 948fd7e5c084274c3945d2004a7fffd19c907a15
branch: main
author: Bénédikt Tran <[email protected]>
committer: picnixz <[email protected]>
date: 2026-08-15T14:00:27+02:00
summary:

gh-155430: fix `hmac.digest` bigmem test (#155431)

files:
M Lib/test/test_hmac.py

diff --git a/Lib/test/test_hmac.py b/Lib/test/test_hmac.py
index 1ea182fec4ff18..c43188cc333e88 100644
--- a/Lib/test/test_hmac.py
+++ b/Lib/test/test_hmac.py
@@ -1459,19 +1459,25 @@ class OperatorCompareDigestTestCase(CompareDigestMixin, 
unittest.TestCase):
 class PyMiscellaneousTests(unittest.TestCase):
     """Miscellaneous tests for the pure Python HMAC module."""
 
+    @staticmethod
+    def mock__compute_digest_fallback(hmac):
+        fn = getattr(hmac, meth := "_compute_digest_fallback")
+        return patch.object(hmac, meth, wraps=fn)
+
+    @staticmethod
+    def mock_HMAC_method(hmac, method):
+        fn = getattr(hmac.HMAC, method)
+        return patch.object(hmac.HMAC, method, autospec=True, wraps=fn)
+
     @hashlib_helper.requires_builtin_hmac()
     def test_hmac_constructor_uses_builtin(self):
         # Block the OpenSSL implementation and check that
         # HMAC() uses the built-in implementation instead.
         hmac = import_fresh_module("hmac", blocked=["_hashlib"])
 
-        def watch_method(cls, name):
-            wraps = getattr(cls, name)
-            return patch.object(cls, name, autospec=True, wraps=wraps)
-
         with (
-            watch_method(hmac.HMAC, '_init_openssl_hmac') as f,
-            watch_method(hmac.HMAC, '_init_builtin_hmac') as g,
+            self.mock_HMAC_method(hmac, '_init_openssl_hmac') as f,
+            self.mock_HMAC_method(hmac, '_init_builtin_hmac') as g,
         ):
             _ = hmac.HMAC(b'key', b'msg', digestmod="sha256")
             f.assert_not_called()
@@ -1542,11 +1548,11 @@ def 
do_test_hmac_digest_overflow_error_switch_to_slow(self, hmac, size):
         bigkey = b'K' * size
         bigmsg = b'M' * size
 
-        with patch.object(hmac, "_compute_digest_fallback") as slow:
+        with self.mock__compute_digest_fallback(hmac) as slow:
             hmac.digest(bigkey, b'm', "md5")
             slow.assert_called_once()
 
-        with patch.object(hmac, "_compute_digest_fallback") as slow:
+        with self.mock__compute_digest_fallback(hmac) as slow:
             hmac.digest(b'k', bigmsg, "md5")
             slow.assert_called_once()
 
@@ -1557,7 +1563,7 @@ def test_hmac_digest_no_overflow_error_in_fallback(self, 
size):
 
         for key, msg in [(b'K' * size, b'm'), (b'k', b'M' * size)]:
             with self.subTest(keysize=len(key), msgsize=len(msg)):
-                with patch.object(hmac, "_compute_digest_fallback") as slow:
+                with self.mock__compute_digest_fallback(hmac) as slow:
                     hmac.digest(key, msg, "md5")
                     slow.assert_called_once()
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to