Passed
Pull Request — master (#84)
by Vinicius
02:44
created

build.tests.unit.test_db_models   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 43
dl 0
loc 61
rs 10
c 0
b 0
f 0
wmc 3

3 Functions

Rating   Name   Duplication   Size   Complexity  
A test_switch_doc_preset_interfaces() 0 26 1
A test_document_base_model_dict() 0 8 1
A test_switch_doc_no_preset_interfaces() 0 13 1
1
"""This test suite cover the db models, however, most have been
2
indirectly tested on test_main.py, so for now it's mostly to cover
3
the remaning parts."""
4
5
from datetime import datetime
6
7
from napps.kytos.topology.db.models import DocumentBaseModel, SwitchDoc
8
9
10
def test_document_base_model_dict() -> None:
11
    """test_document_base_model_dict."""
12
    _id = "some_id"
13
    utcnow = datetime.utcnow()
14
    payload = {"_id": _id, "inserted_at": utcnow, "updated_at": utcnow}
15
    model = DocumentBaseModel(**payload)
16
    assert model.dict() == {**payload, **{"id": _id}}
17
    assert "_id" not in model.dict(exclude={"_id"})
18
19
20
def test_switch_doc_preset_interfaces() -> None:
21
    """test_switch_doc_preset_interfaces."""
22
    dpid = "00:00:00:00:00:00:00:01"
23
    interface_id = f"{dpid}:1"
24
    interfaces = {
25
        interface_id: {
26
            "id": interface_id,
27
            "port_number": 1,
28
            "lldp": True,
29
            "enabled": True,
30
            "active": True,
31
            "mac": "some_mac",
32
            "speed": 0,
33
            "name": "some_name",
34
            "switch": dpid,
35
        }
36
    }
37
    payload = {
38
        "_id": dpid,
39
        "enabled": True,
40
        "active": True,
41
        "interfaces": interfaces,
42
    }
43
    model = SwitchDoc(**payload)
44
    assert model
45
    assert interface_id == model.interfaces[0].id
46
47
48
def test_switch_doc_no_preset_interfaces() -> None:
49
    """test_switch_doc_no_preset_interfaces."""
50
    dpid = "00:00:00:00:00:00:00:01"
51
    interfaces = []
52
    payload = {
53
        "_id": dpid,
54
        "enabled": True,
55
        "active": True,
56
        "interfaces": interfaces,
57
    }
58
    model = SwitchDoc(**payload)
59
    assert model
60
    assert model.interfaces == interfaces
61