| Total Complexity | 1 |
| Total Lines | 37 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 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 |