https://github.com/python/cpython/commit/c3aefdb9eff0734058376b96fc86d89b1a345d75
commit: c3aefdb9eff0734058376b96fc86d89b1a345d75
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-08-06T18:09:22+03:00
summary:

gh-75876: Use functools.wraps() in test.support test decorators (GH-155262)

bigmemtest(), bigaddrspacetest() and no_rerun() returned a wrapper named
"wrapper", so a decorator applied on top of them could not identify the test.

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>

files:
M Lib/test/support/__init__.py

diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 7898ef5e15b2c40..74d3794289bf69f 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -1293,6 +1293,7 @@ def bigmemtest(size, memuse, dry_run=True):
     test doesn't support dummy runs when -M is not specified.
     """
     def decorator(f):
+        @functools.wraps(f)
         def wrapper(self):
             size = wrapper.size
             memuse = wrapper.memuse
@@ -1345,6 +1346,7 @@ def internal(*args, **kwargs):
 
 def bigaddrspacetest(f):
     """Decorator for tests that fill the address space."""
+    @functools.wraps(f)
     def wrapper(self):
         if max_memuse < MAX_Py_ssize_t:
             if MAX_Py_ssize_t >= 2**63 - 1 and max_memuse >= 2**31:
@@ -1450,6 +1452,7 @@ def no_rerun(reason):
     def deco(func):
         assert not isinstance(func, type), func
         _has_run = False
+        @functools.wraps(func)
         def wrapper(self):
             nonlocal _has_run
             if _has_run:

_______________________________________________
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