Completed
Push — master ( 6de098...be5965 )
by Ionel Cristian
53s
created

tests.test_fields_nosuper()   A

Complexity

Conditions 2

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 2
cc 2
rs 10
1
from collections import namedtuple
2
from functools import partial
3
4
from attr import ib as badly_named_field
5
from attr import s as badly_named_class_decorator
6
from attr import Factory
7
from attr import make_class
8
from characteristic import Attribute
9
from characteristic import attributes
10
11
from fields import Fields
12
from fields import SlotsFields
13
from fields import Tuple
14
from fields import __base__
15
from fields import class_sealer
16
from fields import factory
17
from fields import make_init_func
18
19
20
@attributes(["a", "b", Attribute("c", default_value="abc")])
21
class characteristic_class(object):
22
    pass
23
24
25
@badly_named_class_decorator
26
class attrs_decorated_class(object):
27
    a = badly_named_field()
28
    b = badly_named_field()
29
    c = badly_named_field(default=Factory("abc"))
30
31
32
class fields_nosuper_class(
33
    factory(
34
        class_sealer,
35
        base=object,
36
        make_init_func=partial(make_init_func, super_call=False)
37
    ).a.b.c["abc"]
38
):
39
    pass
40
41
42
class fields_class(Fields.a.b.c["abc"]):
43
    pass
44
45
46
class slots_class(SlotsFields.a.b.c["abc"]):
47
    pass
48
49
50
class tuple_class(Tuple.a.b.c["abc"]):
51
    pass
52
53
54
def make_super_dumb_class():
55
    class super_dumb_class(__base__):
56
        def __init__(self, a, b, c="abc"):
57
            self.a = a
58
            self.b = b
59
            self.c = c
60
            super(super_dumb_class, self).__init__(a=a, b=b, c=c)
61
    return super_dumb_class
62
super_dumb_class = make_super_dumb_class()
63
64
class dumb_class(object):
65
    def __init__(self, a, b, c="abc"):
66
        self.a = a
67
        self.b = b
68
        self.c = c
69
70
namedtuple_class = namedtuple("namedtuple_class", ["a", "b", "c"])
71
72
attrs_class = make_class("attrs_class", ["a", "b", "c"])
73
74
75
def test_characteristic(benchmark):
76
    assert benchmark(partial(characteristic_class, a=1, b=2, c=1))
77
78
79
def test_fields(benchmark):
80
    assert benchmark(partial(fields_class, a=1, b=2, c=1))
81
82
83
def test_fields_nosuper(benchmark):
84
    assert benchmark(partial(fields_nosuper_class, a=1, b=2, c=1))
85
86
87
def test_slots_fields(benchmark):
88
    assert benchmark(partial(slots_class, a=1, b=2, c=1))
89
90
91
def test_super_dumb(benchmark):
92
    assert benchmark(partial(super_dumb_class, a=1, b=2, c=1))
93
94
95
def test_dumb(benchmark):
96
    assert benchmark(partial(dumb_class, a=1, b=2, c=1))
97
98
99
def test_tuple(benchmark):
100
    assert benchmark(partial(tuple_class, a=1, b=2, c=1))
101
102
103
def test_namedtuple(benchmark):
104
    assert benchmark(partial(namedtuple_class, a=1, b=2, c=1))
105
106
107
def test_attrs_decorated_class(benchmark):
108
    assert benchmark(partial(attrs_decorated_class, a=1, b=2, c=1))
109
110
111
def test_attrs_class(benchmark):
112
    assert benchmark(partial(attrs_class, a=1, b=2, c=1))
113