build.tests.unit.shared.test_colors   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 45
dl 0
loc 84
ccs 42
cts 42
cp 1
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A TestColors.test_rest_colors() 0 25 1
A TestColors.test_get_switch_colors() 0 31 1
A TestColors.test_rest_colors_without_switches() 0 15 1
1
"""Test the /shared/colors.py."""
2
3 1
from unittest.mock import patch, MagicMock
4 1
from napps.amlight.sdntrace.shared.colors import Colors
5
6
7
# pylint: disable=protected-access
8 1
class TestColors:
9
    """Test the Colors class."""
10
11 1
    @patch("requests.get")
12 1
    def test_rest_colors(self, mock_request_get):
13
        """Test rest call to /colors to retrieve all switches color."""
14 1
        result = MagicMock()
15 1
        result.content = (
16
            '{"colors": {'
17
            '"aa:00:00:00:00:00:00:11": {"color_field": "dl_src", '
18
            '"color_value": "ee:ee:ee:ee:01:2c"},'
19
            '"aa:00:00:00:00:00:00:12": {"color_field": "dl_src", '
20
            '"color_value": "ee:ee:ee:ee:01:2d"}'
21
            "}}"
22
        )
23 1
        result.status_code = 200
24
25 1
        mock_request_get.return_value = result
26
27
        # Call rest /colors
28 1
        color_manager = Colors()
29 1
        colors = color_manager._colors
30
31 1
        mock_request_get.assert_called_once()
32 1
        assert colors["aa:00:00:00:00:00:00:11"]["color_field"] == "dl_src"
33 1
        assert colors["aa:00:00:00:00:00:00:11"]["color_value"] == "ee:ee:ee:ee:01:2c"
34 1
        assert colors["aa:00:00:00:00:00:00:12"]["color_field"] == "dl_src"
35 1
        assert colors["aa:00:00:00:00:00:00:12"]["color_value"] == "ee:ee:ee:ee:01:2d"
36
37 1
    @patch("requests.get")
38 1
    def test_rest_colors_without_switches(self, mock_request_get):
39
        """Test rest call to /colors without switches."""
40 1
        result = MagicMock()
41 1
        result.content = '{"colors": {}}'
42 1
        result.status_code = 200
43
44 1
        mock_request_get.return_value = result
45
46
        # Call rest /colors
47 1
        color_manager = Colors()
48 1
        colors = color_manager._colors
49
50 1
        mock_request_get.assert_called_once()
51 1
        assert colors == {}
52
53 1
    @patch("requests.get")
54 1
    def test_get_switch_colors(self, mock_request_get):
55
        """Test rest call to /colors to retrieve all switches color."""
56 1
        result = MagicMock()
57 1
        result.content = (
58
            '{"colors": {'
59
            '"aa:00:00:00:00:00:00:11": {"color_field": "dl_src", '
60
            '"color_value": "ee:ee:ee:ee:01:2c"},'
61
            '"aa:00:00:00:00:00:00:12": {"color_field": "dl_src", '
62
            '"color_value": "ee:ee:ee:ee:01:2d"}'
63
            "}}"
64
        )
65 1
        result.status_code = 200
66
67 1
        mock_request_get.return_value = result
68
69
        # Call rest /colors
70 1
        color_manager = Colors()
71 1
        assert mock_request_get.call_count == 1
72
73 1
        color = color_manager.get_switch_color("aa:00:00:00:00:00:00:11")
74
75 1
        assert mock_request_get.call_count == 2
76 1
        assert color["color_field"] == "dl_src"
77 1
        assert color["color_value"] == "ee:ee:ee:ee:01:2c"
78
79 1
        color = color_manager.get_switch_color("aa:00:00:00:00:00:00:12")
80
81 1
        assert mock_request_get.call_count == 3
82 1
        assert color["color_field"] == "dl_src"
83
        assert color["color_value"] == "ee:ee:ee:ee:01:2d"
84