From 28d5da2f734985581b8180692a1f266f680428bb Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 13 Mar 2014 00:05:23 +0100 Subject: [PATCH] call signatures: decorator in class, test for #319 --- test/test_api/test_call_signatures.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/test_api/test_call_signatures.py b/test/test_api/test_call_signatures.py index d881c11f..d13a3e7a 100644 --- a/test/test_api/test_call_signatures.py +++ b/test/test_api/test_call_signatures.py @@ -135,3 +135,26 @@ class TestCallSignatures(TestCase): pass """) self._run(s, 'abs', 0, line=1, column=5) + + def test_decorator_in_class(self): + """ + There's still an implicit param, with a decorator. + Github issue #319. + """ + s = textwrap.dedent("""\ + def static(func): + def wrapped(obj, *args): + return f(type(obj), *args) + return wrapped + + class C(object): + @static + def test(cls): + return 10 + + C().test(""") + + signatures = Script(s).call_signatures() + assert len(signatures) == 1 + x = [p.get_code() for p in signatures[0].params] + assert x == ['*args']