Passed
Push — dev ( 1b3874...6a1e3c )
by Konstantinos
03:33
created

test_decorating   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 27
dl 0
loc 37
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A test_decorating() 0 35 1
1
2
def test_decorating():
3
    from green_magic.data.commands_manager import MyDecorator
4
5
6
    class A(MyDecorator): pass
7
    class Ab(MyDecorator): pass
8
    class B(metaclass=MyDecorator): pass
9
10
    assert type(MyDecorator) == type
11
    assert type(A) == type
12
    assert type(B) == MyDecorator
13
14
    RuntimeClass = MyDecorator('RuntimeClass', (object,), {})
15
    assert type(RuntimeClass) == MyDecorator
16
    o1 = RuntimeClass()
17
    assert type(o1) == RuntimeClass
18
19
    RuntimeClassA = MyDecorator('RuntimeClassA', (object,), {})
20
    assert type(RuntimeClassA) == MyDecorator
21
    o2 = RuntimeClassA()
22
    assert type(o2) == RuntimeClassA
23
24
    class ParentClass: pass
25
    class DefinedClass(ParentClass, metaclass=MyDecorator): pass
26
    dc = DefinedClass()
27
    assert type(dc) == DefinedClass
28
29
    b = B()
30
    assert type(b) == B
31
32
    objects = (MyDecorator, A, Ab, B, type(RuntimeClass), type(type(o2)), DefinedClass)
33
    assert all([hasattr(x, 'magic_decorator') for x in objects])
34
35
    assert id(A.magic_decorator) != id(Ab.magic_decorator)
36
    assert len(set([id(o.magic_decorator) for o in objects])) == 1
37