diff options
Diffstat (limited to 'tests/functional/m/missing/missing_kwoa.py')
-rw-r--r-- | tests/functional/m/missing/missing_kwoa.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/functional/m/missing/missing_kwoa.py b/tests/functional/m/missing/missing_kwoa.py new file mode 100644 index 000000000..b4dc604cd --- /dev/null +++ b/tests/functional/m/missing/missing_kwoa.py @@ -0,0 +1,73 @@ +# pylint: disable=missing-docstring,unused-argument,too-few-public-methods +import typing + + +def target(pos, *, keyword): + return pos + keyword + + +def forwarding_kwds(pos, **kwds): + target(pos, **kwds) + + +def forwarding_args(*args, keyword): + target(*args, keyword=keyword) + +def forwarding_conversion(*args, **kwargs): + target(*args, **dict(kwargs)) + + +def not_forwarding_kwargs(*args, **kwargs): + target(*args) # [missing-kwoa] + + +target(1, keyword=2) + +PARAM = 1 +target(2, PARAM) # [too-many-function-args, missing-kwoa] + + +def some_function(*, param): + return param + 2 + + +def other_function(**kwargs): + return some_function(**kwargs) # Does not trigger missing-kwoa + + +other_function(param=2) + + +class Parent: + + @typing.overload + def __init__( self, *, first, second, third): + pass + + @typing.overload + def __init__(self, *, first, second): + pass + + @typing.overload + def __init__(self, *, first): + pass + + def __init__( + self, + *, + first, + second: typing.Optional[str] = None, + third: typing.Optional[str] = None): + self._first = first + self._second = second + self._third = third + + +class Child(Parent): + def __init__( + self, + *, + first, + second): + super().__init__(first=first, second=second) + self._first = first + second |