@@ -2960,8 +2960,6 @@ def foo(a): pass
29602960 self .assertEqual (str (inspect .signature (foo )), '(a)' )
29612961
29622962 def test_signature_on_decorated (self ):
2963- import functools
2964-
29652963 def decorator (func ):
29662964 @functools .wraps (func )
29672965 def wrapper (* args , ** kwargs ) -> int :
@@ -2973,6 +2971,8 @@ class Foo:
29732971 def bar (self , a , b ):
29742972 pass
29752973
2974+ bar = decorator (Foo ().bar )
2975+
29762976 self .assertEqual (self .signature (Foo .bar ),
29772977 ((('self' , ..., ..., "positional_or_keyword" ),
29782978 ('a' , ..., ..., "positional_or_keyword" ),
@@ -2991,6 +2991,11 @@ def bar(self, a, b):
29912991 # from "func" to "wrapper", hence no
29922992 # return_annotation
29932993
2994+ self .assertEqual (self .signature (bar ),
2995+ ((('a' , ..., ..., "positional_or_keyword" ),
2996+ ('b' , ..., ..., "positional_or_keyword" )),
2997+ ...))
2998+
29942999 # Test that we handle method wrappers correctly
29953000 def decorator (func ):
29963001 @functools .wraps (func )
0 commit comments