diff --git a/test/test_api/test_call_signatures.py b/test/test_api/test_call_signatures.py index 5114f7e2..602e8c4f 100644 --- a/test/test_api/test_call_signatures.py +++ b/test/test_api/test_call_signatures.py @@ -401,87 +401,88 @@ code3 = 'def h(u, /, v, *args, x=1, y): pass' code4 = 'def i(u, /, v, *args, x=1, y, **kwargs): pass' -@pytest.mark.parametrize( - 'code, call, expected_index', [ - # No *args, **kwargs - (code1, 'f(', 0), - (code1, 'f(a', 0), - (code1, 'f(a,', 1), - (code1, 'f(a,b', 1), - (code1, 'f(a,b,', 2), - (code1, 'f(a,b,c', None), - (code1, 'f(a,b,a', 2), - (code1, 'f(a,b,a=', None), - (code1, 'f(a,b,abc', 2), - (code1, 'f(a,b,abc=(', 2), - (code1, 'f(a,b,abc=(f,1,2,3', 2), - (code1, 'f(a,b,abd', 3), - (code1, 'f(a,b,x', 4), - (code1, 'f(a,b,xy', 4), - (code1, 'f(a,b,xyz=', 4), - (code1, 'f(a,b,xy=', None), - (code1, 'f(u=', None), - (code1, 'f(v=', 1), +_calls = [ + # No *args, **kwargs + (code1, 'f(', 0), + (code1, 'f(a', 0), + (code1, 'f(a,', 1), + (code1, 'f(a,b', 1), + (code1, 'f(a,b,', 2), + (code1, 'f(a,b,c', None), + (code1, 'f(a,b,a', 2), + (code1, 'f(a,b,a=', None), + (code1, 'f(a,b,abc', 2), + (code1, 'f(a,b,abc=(', 2), + (code1, 'f(a,b,abc=(f,1,2,3', 2), + (code1, 'f(a,b,abd', 3), + (code1, 'f(a,b,x', 4), + (code1, 'f(a,b,xy', 4), + (code1, 'f(a,b,xyz=', 4), + (code1, 'f(a,b,xy=', None), + (code1, 'f(u=', None), + (code1, 'f(v=', 1), - # **kwargs - (code2, 'g(a,b,a', 2), - (code2, 'g(a,b,abc', 2), - (code2, 'g(a,b,abd', 3), - (code2, 'g(a,b,arr', 5), - (code2, 'g(a,b,xy', 4), - (code2, 'g(a,b,xyz=', 4), - (code2, 'g(a,b,xy=', 5), - (code2, 'g(a,b,abc=1,abd=4,', 4), - (code2, 'g(a,b,abc=1,xyz=3,abd=4,', 5), - (code2, 'g(a,b,abc=1,abd=4,lala', 5), - (code2, 'g(a,b,abc=1,abd=4,lala=', 5), - (code2, 'g(a,b,abc=1,abd=4,abd=', 5), - (code2, 'g(a,b,kw', 5), - (code2, 'g(a,b,kwargs=', 5), - (code2, 'g(u=', 5), - (code2, 'g(v=', 1), + # **kwargs + (code2, 'g(a,b,a', 2), + (code2, 'g(a,b,abc', 2), + (code2, 'g(a,b,abd', 3), + (code2, 'g(a,b,arr', 5), + (code2, 'g(a,b,xy', 4), + (code2, 'g(a,b,xyz=', 4), + (code2, 'g(a,b,xy=', 5), + (code2, 'g(a,b,abc=1,abd=4,', 4), + (code2, 'g(a,b,abc=1,xyz=3,abd=4,', 5), + (code2, 'g(a,b,abc=1,abd=4,lala', 5), + (code2, 'g(a,b,abc=1,abd=4,lala=', 5), + (code2, 'g(a,b,abc=1,abd=4,abd=', 5), + (code2, 'g(a,b,kw', 5), + (code2, 'g(a,b,kwargs=', 5), + (code2, 'g(u=', 5), + (code2, 'g(v=', 1), - # *args - (code3, 'h(a,b,c', 2), - (code3, 'h(a,b,c,', 2), - (code3, 'h(a,b,c,d', 2), - (code3, 'h(a,b,c,d[', 2), - (code3, 'h(a,b,c,(3,', 2), - (code3, 'h(a,b,c,(3,)', 2), - (code3, 'h(a,b,args=', None), - (code3, 'h(u,v=', 1), - (code3, 'h(u=', None), - (code3, 'h(u,*xxx', 1), - (code3, 'h(u,*xxx,*yyy', 1), - (code3, 'h(u,*[]', 1), - (code3, 'h(u,*', 1), - (code3, 'h(u,*, *', 1), - (code3, 'h(u,1,**', 3), - (code3, 'h(u,**y', 1), - (code3, 'h(u,x=2,**', 1), - (code3, 'h(u,x=2,**y', 1), - (code3, 'h(u,v=2,**y', 3), - (code3, 'h(u,x=2,**vv', 1), + # *args + (code3, 'h(a,b,c', 2), + (code3, 'h(a,b,c,', 2), + (code3, 'h(a,b,c,d', 2), + (code3, 'h(a,b,c,d[', 2), + (code3, 'h(a,b,c,(3,', 2), + (code3, 'h(a,b,c,(3,)', 2), + (code3, 'h(a,b,args=', None), + (code3, 'h(u,v=', 1), + (code3, 'h(u=', None), + (code3, 'h(u,*xxx', 1), + (code3, 'h(u,*xxx,*yyy', 1), + (code3, 'h(u,*[]', 1), + (code3, 'h(u,*', 1), + (code3, 'h(u,*, *', 1), + (code3, 'h(u,1,**', 3), + (code3, 'h(u,**y', 1), + (code3, 'h(u,x=2,**', 1), + (code3, 'h(u,x=2,**y', 1), + (code3, 'h(u,v=2,**y', 3), + (code3, 'h(u,x=2,**vv', 1), - # *args, **kwargs - (code4, 'i(a,b,c,d', 2), - (code4, 'i(a,b,c,d,e', 2), - (code4, 'i(a,b,c,d,e=', 5), - (code4, 'i(a,b,c,d,e=3', 5), - (code4, 'i(a,b,c,d=,x=', 3), - (code4, 'i(a,b,c,d=5,x=4', 3), - (code4, 'i(a,b,c,d=5,x=4,y', 4), - (code4, 'i(a,b,c,d=5,x=4,y=3,', 5), - (code4, 'i(a,b,c,d=5,y=4,x=3,', 5), - (code4, 'i(a,b,c,d=4,', 3), - (code4, 'i(a,b,c,x=1,d=,', 4), + # *args, **kwargs + (code4, 'i(a,b,c,d', 2), + (code4, 'i(a,b,c,d,e', 2), + (code4, 'i(a,b,c,d,e=', 5), + (code4, 'i(a,b,c,d,e=3', 5), + (code4, 'i(a,b,c,d=,x=', 3), + (code4, 'i(a,b,c,d=5,x=4', 3), + (code4, 'i(a,b,c,d=5,x=4,y', 4), + (code4, 'i(a,b,c,d=5,x=4,y=3,', 5), + (code4, 'i(a,b,c,d=5,y=4,x=3,', 5), + (code4, 'i(a,b,c,d=4,', 3), + (code4, 'i(a,b,c,x=1,d=,', 4), - # Error nodes - (code4, 'i(1, [a,b', 1), - (code4, 'i(1, [a,b=,', 2), - (code4, 'i(1, [a!b,', 2), - ] -) + # Error nodes + (code4, 'i(1, [a,b', 1), + (code4, 'i(1, [a,b=,', 2), + (code4, 'i(1, [a!b,', 2), +] + + +@pytest.mark.parametrize('code, call, expected_index', _calls) def test_signature_index(skip_pre_python38, Script, code, call, expected_index): sig, = Script(code + '\n' + call).call_signatures() index = sig.index