Add ParamDefinition.kind, fixes #1361

This commit is contained in:
Dave Halter
2019-08-02 13:11:41 +02:00
parent 642e8f2aa6
commit 876a6a5c22
2 changed files with 21 additions and 4 deletions

View File

@@ -51,8 +51,11 @@ def test_param_default(Script, code, expected_params):
@pytest.mark.parametrize(
'code, index, param_code, kind', [
('def f(x=1): ...\nf', 0, 'x=1', ...),
('def f(*args:int): ...\nf', 0, '*args: int', ...),
('def f(x=1): ...\nf', 0, 'x=1', 'POSITIONAL_OR_KEYWORD'),
('def f(*args:int): ...\nf', 0, '*args: int', 'VAR_POSITIONAL'),
('def f(**kwargs: List[x]): ...\nf', 0, '**kwargs: List[x]', 'VAR_KEYWORD'),
('def f(*, x:int=5): ...\nf', 0, 'x: int=5', 'KEYWORD_ONLY'),
('def f(*args, x): ...\nf', 1, 'x', 'KEYWORD_ONLY'),
]
)
def test_param_kind_and_name(code, index, param_code, kind, Script, skip_python2):
@@ -60,3 +63,4 @@ def test_param_kind_and_name(code, index, param_code, kind, Script, skip_python2
sig, = func.get_signatures()
param = sig.params[index]
assert param.to_string() == param_code
assert param.kind.name == kind