Passed
Push — master ( e932ef...36cf0a )
by Vinicius
02:30 queued 14s
created

build.tests.unit.shared.test_colors   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 52
dl 0
loc 94
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

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