Passed
Pull Request — master (#72)
by macartur
08:39 queued 06:24
created

build.tests.models.test_path   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 59
dl 0
loc 92
rs 10
c 0
b 0
f 0
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A TestPath.test_status_case_1() 0 4 1
A TestPath.test_status_case_4() 0 8 1
A TestPath.test_compare_different_paths() 0 18 1
A TestPath.test_as_dict() 0 10 1
A TestPath.test_compare_same_paths() 0 12 1
A TestPath.test_status_case_2() 0 8 1
A TestPath.test_status_case_3() 0 8 1
1
"""Module to test the Path class."""
2
import sys
3
from unittest import TestCase
4
5
from kytos.core.common import EntityStatus
6
7
# pylint: disable=wrong-import-position
8
sys.path.insert(0, '/var/lib/kytos/napps/..')
9
# pylint: enable=wrong-import-position
10
11
from napps.kytos.mef_eline.models import Path  # NOQA
12
from napps.kytos.mef_eline.tests.helpers import get_link_mocked  # NOQA
13
14
15
class TestPath(TestCase):
16
    """"Class to test path methods."""
17
18
    def test_status_case_1(self):
19
        """Test if empty link is DISABLED."""
20
        current_path = Path()
21
        self.assertEqual(current_path.status, EntityStatus.DISABLED)
22
23
    def test_status_case_2(self):
24
        """Test if link status is DOWN."""
25
        links = [
26
                 get_link_mocked(status=EntityStatus.DOWN),
27
                 get_link_mocked(status=EntityStatus.UP)
28
        ]
29
        current_path = Path(links)
30
        self.assertEqual(current_path.status, EntityStatus.DOWN)
31
32
    def test_status_case_3(self):
33
        """Test if link status is DISABLED."""
34
        links = [
35
                 get_link_mocked(status=EntityStatus.DISABLED),
36
                 get_link_mocked(status=EntityStatus.UP)
37
        ]
38
        current_path = Path(links)
39
        self.assertEqual(current_path.status, EntityStatus.DISABLED)
40
41
    def test_status_case_4(self):
42
        """Test if link status is UP."""
43
        links = [
44
                 get_link_mocked(status=EntityStatus.UP),
45
                 get_link_mocked(status=EntityStatus.UP)
46
        ]
47
        current_path = Path(links)
48
        self.assertEqual(current_path.status, EntityStatus.UP)
49
50
    def test_compare_same_paths(self):
51
        """Test compare paths with same links."""
52
        links = [
53
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
54
                                metadata={"s_vlan": 5}),
55
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
56
                                metadata={"s_vlan": 6})
57
            ]
58
59
        path_1 = Path(links)
60
        path_2 = Path(links)
61
        self.assertEqual(path_1, path_2)
62
63
    def test_compare_different_paths(self):
64
        """Test compare paths with different links."""
65
        links_1 = [
66
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
67
                                metadata={"s_vlan": 5}),
68
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
69
                                metadata={"s_vlan": 6})
70
            ]
71
        links_2 = [
72
                get_link_mocked(endpoint_a_port=12, endpoint_b_port=11,
73
                                metadata={"s_vlan": 5}),
74
                get_link_mocked(endpoint_a_port=14, endpoint_b_port=16,
75
                                metadata={"s_vlan": 11})
76
            ]
77
78
        path_1 = Path(links_1)
79
        path_2 = Path(links_2)
80
        self.assertNotEqual(path_1, path_2)
81
82
    def test_as_dict(self):
83
        """Test path as dict."""
84
        links = [
85
                get_link_mocked(link_dict={"id": 3}),
86
                get_link_mocked(link_dict={"id": 2})
87
            ]
88
89
        current_path = Path(links)
90
        expected_dict = [{"id": 3}, {"id": 2}]
91
        self.assertEqual(expected_dict, current_path.as_dict())
92
93
94