|
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.bulk_write |
|
69
|
1 |
|
assert mock.call_count == 1 |
|
70
|
|
|
|
|
71
|
1 |
|
def test_delete_interface(self, liveness_controller) -> None: |
|
72
|
|
|
"""Test delete_interface.""" |
|
73
|
1 |
|
intf_id = "00:00:00:00:00:00:00:01:1" |
|
74
|
1 |
|
liveness_controller.delete_interface(intf_id) |
|
75
|
1 |
|
mock = liveness_controller.db.liveness.find_one_and_delete |
|
76
|
1 |
|
assert mock.call_count == 1 |
|
77
|
|
|
mock.assert_called_with({"_id": intf_id}) |
|
78
|
|
|
|