tests.test_decorators   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 48
rs 10
c 0
b 0
f 0
wmc 7

5 Functions

Rating   Name   Duplication   Size   Complexity  
A test_doc_strings_are_preserved() 0 5 1
A test_classes_can_not_be_magic_decorated() 0 6 2
A _do_something_magic() 0 7 1
A _do_something() 0 7 1
A test_classes_can_not_be_decorated() 0 6 2
1
import pytest
2
3
from lagom import Container, bind_to_container, magic_bind_to_container
4
from lagom.exceptions import ClassesCannotBeDecorated
5
6
container = Container()
7
8
9
@bind_to_container(container)
10
def _do_something():
11
    """
12
    The doc string
13
    :return:
14
    """
15
    pass
16
17
18
@magic_bind_to_container(container)
19
def _do_something_magic():
20
    """
21
    The magic doc string
22
    :return:
23
    """
24
    pass
25
26
27
def test_doc_strings_are_preserved():
28
    assert _do_something.__doc__
29
    assert _do_something_magic.__doc__
30
    assert "The doc string" in _do_something.__doc__
31
    assert "The magic doc string" in _do_something_magic.__doc__
32
33
34
def test_classes_can_not_be_decorated():
35
    with pytest.raises(ClassesCannotBeDecorated):
36
37
        @bind_to_container(container)
38
        class TestThisThing:
39
            pass
40
41
42
def test_classes_can_not_be_magic_decorated():
43
    with pytest.raises(ClassesCannotBeDecorated):
44
45
        @magic_bind_to_container(container)
46
        class TestThisOtherThing:
47
            pass
48