mirror of https://github.com/python/cpython
gh-107409: set `__wrapped__` attribute in `reprlib.recursive_repr` (#107410)
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
This commit is contained in:
parent
0f2fb6efb4
commit
4845b9712f
|
@ -29,6 +29,7 @@ def recursive_repr(fillvalue='...'):
|
|||
wrapper.__name__ = getattr(user_function, '__name__')
|
||||
wrapper.__qualname__ = getattr(user_function, '__qualname__')
|
||||
wrapper.__annotations__ = getattr(user_function, '__annotations__', {})
|
||||
wrapper.__wrapped__ = user_function
|
||||
return wrapper
|
||||
|
||||
return decorating_function
|
||||
|
|
|
@ -765,5 +765,14 @@ class TestRecursiveRepr(unittest.TestCase):
|
|||
for name in assigned:
|
||||
self.assertIs(getattr(wrapper, name), getattr(wrapped, name))
|
||||
|
||||
def test__wrapped__(self):
|
||||
class X:
|
||||
def __repr__(self):
|
||||
return 'X()'
|
||||
f = __repr__ # save reference to check it later
|
||||
__repr__ = recursive_repr()(__repr__)
|
||||
|
||||
self.assertIs(X.f, X.__repr__.__wrapped__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Set :attr:`!__wrapped__` attribute in :func:`reprlib.recursive_repr`.
|
Loading…
Reference in New Issue