TestLivenessController.test_upsert_interfaces()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 5
nop 2
dl 0
loc 6
ccs 5
cts 5
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
"""Module to test LivenessController."""
2
# pylint: disable=invalid-name,relative-beyond-top-level
3
4 1
from unittest.mock import MagicMock
5
6
7 1
class TestLivenessController:  # pylint: disable=too-many-public-methods
8
    """Test the Main class."""
9
10 1
    def test_boostrap_indexes(self, liveness_controller) -> None:
11
        """Test_boostrap_indexes."""
12 1
        liveness_controller.bootstrap_indexes()
13
14 1
        expected_indexes = [("liveness", [("enabled", 1)])]
15 1
        mock = liveness_controller.mongo.bootstrap_index
16 1
        assert mock.call_count == len(expected_indexes)
17 1
        indexes = [(v[0][0], v[0][1]) for v in mock.call_args_list]
18 1
        assert expected_indexes == indexes
19
20 1
    def test_get_enabled_interfaces(self, liveness_controller) -> None:
21
        """Test get_enabled_interfaces."""
22 1
        liveness_controller.get_enabled_interfaces()
23 1
        assert liveness_controller.db.liveness.aggregate.call_count == 1
24 1
        call_args = liveness_controller.db.liveness.aggregate.call_args
25 1
        assert call_args[0][0] == [
26
            {"$match": {"enabled": True}},
27
            {"$sort": {"_id": 1}},
28
            {"$project": {"_id": 0}},
29
        ]
30
31 1
    def test_upsert_interfaces(self, liveness_controller) -> None:
32
        """Test upsert_interfaces."""
33 1
        intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"]
34 1
        intf_dicts = [{"enabled": True}, {"enabled": True}]
35 1
        liveness_controller.upsert_interfaces(intf_ids, intf_dicts)
36 1
        assert liveness_controller.db.liveness.bulk_write.call_count == 1
37
38 1
    def test_enable_interfaces(self, liveness_controller) -> None:
39
        """Test enable_interfaces."""
40 1
        intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"]
41 1
        liveness_controller.upsert_interfaces = MagicMock()
42 1
        upsert_mock = liveness_controller.upsert_interfaces
43 1
        liveness_controller.enable_interfaces(intf_ids)
44 1
        assert upsert_mock.call_count == 1
45 1
        upsert_mock.assert_called_with(
46
            intf_ids,
47
            [{"enabled": True}, {"enabled": True}],
48
            upsert=True,
49
        )
50
51 1
    def test_disable_interfaces(self, liveness_controller) -> None:
52
        """Test disable_interfaces."""
53 1
        intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"]
54 1
        liveness_controller.upsert_interfaces = MagicMock()
55 1
        upsert_mock = liveness_controller.upsert_interfaces
56 1
        liveness_controller.disable_interfaces(intf_ids)
57 1
        assert upsert_mock.call_count == 1
58 1
        upsert_mock.assert_called_with(
59
            intf_ids,
60
            [{"enabled": False}, {"enabled": False}],
61
            upsert=False,
62
        )
63
64 1
    def test_delete_interfaces(self, liveness_controller) -> None:
65
        """Test delete_interfaces."""
66 1
        intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"]
67 1
        liveness_controller.delete_interfaces(intf_ids)
68 1
        mock = liveness_controller.db.liveness.delete_many
69 1
        assert mock.call_count == 1
70 1
        mock.assert_called_with({"_id": {"$in": intf_ids}})
71
72 1
    def test_delete_interface(self, liveness_controller) -> None:
73
        """Test delete_interface."""
74 1
        intf_id = "00:00:00:00:00:00:00:01:1"
75 1
        liveness_controller.delete_interface(intf_id)
76 1
        mock = liveness_controller.db.liveness.find_one_and_delete
77 1
        assert mock.call_count == 1
78
        mock.assert_called_with({"_id": intf_id})
79