diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-20 14:30:08 -0400 |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-20 14:30:08 -0400 |
commit | bcd4fc161ae40aaed4c8812d0bf37aa94c6cc2df (patch) | |
tree | 0d676ad431eba126313a76b126f6bc45d83b30f1 /Lib/test/test_inspect.py | |
parent | 1f507a81405dd7234dd97465d68fcc8437b5da0e (diff) | |
download | cpython-git-bcd4fc161ae40aaed4c8812d0bf37aa94c6cc2df.tar.gz |
Issue 20691: Add follow_wrapped arg to inspect.signature/from_callable.
Diffstat (limited to 'Lib/test/test_inspect.py')
-rw-r--r-- | Lib/test/test_inspect.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 92bc09664e..8d1178314a 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -1735,8 +1735,8 @@ class MyParameter(inspect.Parameter): class TestSignatureObject(unittest.TestCase): @staticmethod - def signature(func): - sig = inspect.signature(func) + def signature(func, **kw): + sig = inspect.signature(func, **kw) return (tuple((param.name, (... if param.default is param.empty else param.default), (... if param.annotation is param.empty @@ -1956,6 +1956,11 @@ class TestSignatureObject(unittest.TestCase): self.assertEqual(inspect.signature(func), inspect.signature(decorated_func)) + def wrapper_like(*args, **kwargs) -> int: pass + self.assertEqual(inspect.signature(decorated_func, + follow_wrapped=False), + inspect.signature(wrapper_like)) + @cpython_only def test_signature_on_builtins_no_signature(self): import _testcapi @@ -2384,6 +2389,13 @@ class TestSignatureObject(unittest.TestCase): ('b', ..., ..., "positional_or_keyword")), ...)) + self.assertEqual(self.signature(Foo.bar, follow_wrapped=False), + ((('args', ..., ..., "var_positional"), + ('kwargs', ..., ..., "var_keyword")), + ...)) # functools.wraps will copy __annotations__ + # from "func" to "wrapper", hence no + # return_annotation + # Test that we handle method wrappers correctly def decorator(func): @functools.wraps(func) |