From ca6a7215e2df12481a2c9f36e3519301eda87b91 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 2 Aug 2019 10:41:04 +0200 Subject: [PATCH] Test infer_default --- test/test_api/test_signatures.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/test_api/test_signatures.py b/test/test_api/test_signatures.py index 2f1936d8..fc908621 100644 --- a/test/test_api/test_signatures.py +++ b/test/test_api/test_signatures.py @@ -25,3 +25,22 @@ def test_param_annotation(Script, code, expected_params, execute_annotation): else: annotation, = annotations assert annotation.description == expected + + +@pytest.mark.parametrize( + 'code, expected_params', [ + ('def f(x=1, y=int, z): ...\nf', ['instance int', 'class int', None]), + ('def f(*args, **kwargs): ...\nf', [None, None]), + ('x=1\ndef f(p=x): ...\nx=""\nf', ['instance int']), + ] +) +def test_param_default(Script, code, expected_params): + func, = Script(code).goto_assignments() + sig, = func.get_signatures() + for p, expected in zip(sig.params, expected_params): + annotations = p.infer_default() + if expected is None: + assert not annotations + else: + annotation, = annotations + assert annotation.description == expected