summaryrefslogtreecommitdiff
path: root/test/input/func_ctor_arguments.py
blob: f9a3430616b9a1e4a9e34f86621fbf0bd73d2749 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
"""Test function argument checker on __init__

Based on test/input/func_arguments.py
"""
# pylint: disable=C0111,R0903,W0231
__revision__ = ''

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()
Class1Arg(1337, 347)

Class3Arg(420, 789)
Class3Arg()
Class3Arg(1337, 347, 456)
Class3Arg('bab', 'bebe', None, 5.6)

ClassDefaultArg(1, two=5)
ClassDefaultArg(two=5)

Class1Arg(bob=4)
ClassDefaultArg(1, 4, coin="hello")

ClassDefaultArg(1, one=5)

Subclass1Arg(420)
Subclass1Arg()
Subclass1Arg(1337, 347)

ClassAllArgs()
ClassAllArgs(1, 2, 3, even=4, more=5)

ClassMultiInheritance(1)
ClassMultiInheritance(1, 2, 3)

ClassNew(1, kwarg=1)
ClassNew(1, 2, 3)
ClassNew(one=2)


class Metaclass(type):
    def __new__(mcs, name, bases, namespace):
        return type.__new__(mcs, 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()