Passed
Push — master ( 67da38...5413c2 )
by Vinicius
01:58 queued 15s
created

TestINTManager.test_enable_int_metadata()   A

Complexity

Conditions 1

Size

Total Lines 26
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 20
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 21
nop 2
dl 0
loc 26
ccs 20
cts 20
cp 1
crap 1
rs 9.376
c 0
b 0
f 0
1
"""Test INTManager"""
2
3 1
from unittest.mock import AsyncMock, MagicMock
4 1
from napps.kytos.telemetry_int.managers.int import INTManager
5
6
7 1
class TestINTManager:
8
9
    """TestINTManager."""
10
11 1
    async def test_disable_int_metadata(self, monkeypatch) -> None:
12
        """Test disable INT metadata args."""
13 1
        controller = MagicMock()
14 1
        api_mock = AsyncMock()
15 1
        monkeypatch.setattr("napps.kytos.telemetry_int.managers.int.api", api_mock)
16
17 1
        int_manager = INTManager(controller)
18 1
        int_manager.remove_int_flows = AsyncMock()
19 1
        await int_manager.disable_int({}, False)
20
21 1
        assert api_mock.add_evcs_metadata.call_count == 1
22 1
        args = api_mock.add_evcs_metadata.call_args[0]
23 1
        assert args[0] == {}
24 1
        assert "telemetry" in args[1]
25 1
        telemetry_dict = args[1]["telemetry"]
26 1
        expected_keys = ["enabled", "status", "status_reason", "status_updated_at"]
27 1
        assert sorted(list(telemetry_dict.keys())) == sorted(expected_keys)
28
29 1
        assert not telemetry_dict["enabled"]
30 1
        assert telemetry_dict["status"] == "DOWN"
31 1
        assert telemetry_dict["status_reason"] == ["disabled"]
32
33 1
        assert args[2] is False
34
35 1
    async def test_enable_int_metadata(self, monkeypatch) -> None:
36
        """Test enable INT metadata args."""
37 1
        controller = MagicMock()
38 1
        api_mock = AsyncMock()
39 1
        stored_flows_mock = AsyncMock()
40 1
        monkeypatch.setattr("napps.kytos.telemetry_int.managers.int.api", api_mock)
41 1
        monkeypatch.setattr(
42
            "napps.kytos.telemetry_int.utils.get_found_stored_flows", stored_flows_mock
43
        )
44
45 1
        int_manager = INTManager(controller)
46 1
        int_manager.remove_int_flows = AsyncMock()
47 1
        await int_manager.enable_int({}, False)
48
49 1
        assert stored_flows_mock.call_count == 1
50 1
        assert api_mock.add_evcs_metadata.call_count == 1
51 1
        args = api_mock.add_evcs_metadata.call_args[0]
52 1
        assert args[0] == {}
53 1
        assert "telemetry" in args[1]
54 1
        telemetry_dict = args[1]["telemetry"]
55 1
        expected_keys = ["enabled", "status", "status_reason", "status_updated_at"]
56 1
        assert sorted(list(telemetry_dict.keys())) == sorted(expected_keys)
57
58 1
        assert telemetry_dict["enabled"] is True
59 1
        assert telemetry_dict["status"] == "UP"
60
        assert telemetry_dict["status_reason"] == []
61