blob: ee10413e3bbc17facc52f71d0504a913bc515ad2 [file] [log] [blame]
"""Test function argument checker on __init__
Based on tests/functional/a/arguments.py
"""
# pylint: disable=missing-docstring,too-few-public-methods,super-init-not-called,useless-object-inheritance
class Class1Arg(object):
def __init__(self, first_argument):
"""one argument function"""
class Class3Arg(object):
def __init__(self, first_argument, second_argument, third_argument):
"""three arguments function"""
class ClassDefaultArg(object):
def __init__(self, one=1, two=2):
"""function with default value"""
class Subclass1Arg(Class1Arg):
pass
class ClassAllArgs(Class1Arg):
def __init__(self, *args, **kwargs):
pass
class ClassMultiInheritance(Class1Arg, Class3Arg):
pass
class ClassNew(object):
def __new__(cls, first_argument, kwarg=None):
return first_argument, kwarg
Class1Arg(420)
Class1Arg() # [no-value-for-parameter]
Class1Arg(1337, 347) # [too-many-function-args]
Class3Arg(420, 789) # [no-value-for-parameter]
# +1:[no-value-for-parameter,no-value-for-parameter,no-value-for-parameter]
Class3Arg()
Class3Arg(1337, 347, 456)
Class3Arg('bab', 'bebe', None, 5.6) # [too-many-function-args]
ClassDefaultArg(1, two=5)
ClassDefaultArg(two=5)
Class1Arg(bob=4) # [no-value-for-parameter,unexpected-keyword-arg]
ClassDefaultArg(1, 4, coin="hello") # [unexpected-keyword-arg]
ClassDefaultArg(1, one=5) # [redundant-keyword-arg]
Subclass1Arg(420)
Subclass1Arg() # [no-value-for-parameter]
Subclass1Arg(1337, 347) # [too-many-function-args]
ClassAllArgs()
ClassAllArgs(1, 2, 3, even=4, more=5)
ClassMultiInheritance(1)
ClassMultiInheritance(1, 2, 3) # [too-many-function-args]
ClassNew(1, kwarg=1)
ClassNew(1, 2, 3) # [too-many-function-args]
ClassNew(one=2) # [no-value-for-parameter,unexpected-keyword-arg]
class Metaclass(type):
def __new__(cls, name, bases, namespace):
return type.__new__(cls, name, bases, namespace)
def with_metaclass(meta, base=object):
"""Create a new type that can be used as a metaclass."""
return meta("NewBase", (base, ), {})
class ClassWithMeta(with_metaclass(Metaclass)):
pass
ClassWithMeta()
class BuiltinExc(Exception):
def __init__(self, val=True):
self.val = val
BuiltinExc(42, 24, badarg=1) # [too-many-function-args,unexpected-keyword-arg]
class Clsmethod(object):
def __init__(self, first, second):
self.first = first
self.second = second
@classmethod
def from_nothing(cls):
return cls(1, 2, 3, 4) # [too-many-function-args]
@classmethod
def from_nothing1(cls):
return cls() # [no-value-for-parameter,no-value-for-parameter]
@classmethod
def from_nothing2(cls):
# +1: [no-value-for-parameter,unexpected-keyword-arg]
return cls(1, not_argument=2)