build.tests.unit.test_storehouse   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 109
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 74
dl 0
loc 109
rs 10
c 0
b 0
f 0
wmc 9

9 Methods

Rating   Name   Duplication   Size   Complexity  
A TestStoreHouse.test_create_box() 0 5 1
A TestStoreHouse.test_get_data() 0 7 1
A TestStoreHouse.test_save_evc_callback_no_error() 0 10 1
A TestStoreHouse.test_get_stored_box() 0 5 1
A TestStoreHouse.test_save_evc_callback_with_error() 0 12 1
A TestStoreHouse.setUp() 0 3 1
A TestStoreHouse.test_get_box_callback() 0 18 1
A TestStoreHouse.test_get_or_create_box() 0 14 1
A TestStoreHouse.test_create_box_callback() 0 15 1
1
"""Module to test the schedule.py file."""
2
from unittest import TestCase
3
from unittest.mock import patch, Mock
4
5
from napps.kytos.mef_eline.storehouse import StoreHouse
6
from napps.kytos.mef_eline.tests.helpers import get_controller_mock
7
8
9
class TestStoreHouse(TestCase):
10
    """Tests to verify StoreHouse class."""
11
12
    def setUp(self):
13
        """Execute steps before each tests."""
14
        self.storehouse = StoreHouse(get_controller_mock())
15
16
    def test_get_stored_box(self):
17
        """Test get_stored_box method."""
18
        self.storehouse.controller.buffers = Mock()
19
        self.storehouse.get_stored_box(1)
20
        self.storehouse.controller.buffers.app.put.assert_called_once()
21
22
    def test_create_box(self):
23
        """Test get_stored_box method."""
24
        self.storehouse.controller.buffers = Mock()
25
        self.storehouse.create_box()
26
        self.storehouse.controller.buffers.app.put.assert_called_once()
27
28
    @patch("napps.kytos.mef_eline.storehouse.log")
29
    def test_save_evc_callback_no_error(self, log_mock):
30
        # pylint: disable=protected-access
31
        """Test _save_evc_callback method."""
32
        self.storehouse._lock = Mock()
33
        data = Mock()
34
        data.box_id = 1
35
        self.storehouse._save_evc_callback("event", data, None)
36
        self.storehouse._lock.release.assert_called_once()
37
        log_mock.error.assert_not_called()
38
39
    @patch("napps.kytos.mef_eline.storehouse.log")
40
    def test_save_evc_callback_with_error(self, log_mock):
41
        # pylint: disable=protected-access
42
        """Test _save_evc_callback method."""
43
        self.storehouse._lock = Mock()
44
        self.storehouse.box = Mock()
45
        self.storehouse.box.box_id = 1
46
        data = Mock()
47
        data.box_id = 1
48
        self.storehouse._save_evc_callback("event", data, "error")
49
        self.storehouse._lock.release.assert_called_once()
50
        log_mock.error.assert_called_once()
51
52
    @patch("napps.kytos.mef_eline.storehouse.StoreHouse.get_stored_box")
53
    def test_get_data(self, get_stored_box_mock):
54
        """Test get_data method."""
55
        self.storehouse.box = Mock()
56
        self.storehouse.box.box_id = 2
57
        self.storehouse.get_data()
58
        get_stored_box_mock.assert_called_once_with(2)
59
60
    @patch('napps.kytos.mef_eline.storehouse.log')
61
    def test_create_box_callback(self, log_mock):
62
        # pylint: disable=protected-access
63
        """Test _create_box_callback method."""
64
        data = Mock()
65
        data.box_id = 1
66
        self.storehouse._create_box_callback('event', data, None)
67
        log_mock.error.assert_not_called()
68
        log_mock.debug.assert_called_once()
69
70
        # test with error
71
        log_mock.debug.call_count = 0
72
        self.storehouse._create_box_callback('event', data, 'error')
73
        log_mock.error.assert_called_once()
74
        log_mock.debug.assert_called_once()
75
76
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.get_stored_box')
77
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.create_box')
78
    def test_get_or_create_box(self, create_box_mock, get_stored_box_mock):
79
        """Test _get_or_create_a_box_from_list_of_boxes method."""
80
        # pylint: disable=protected-access
81
        self.storehouse._get_or_create_a_box_from_list_of_boxes(
82
            'event', [2], None
83
        )
84
        get_stored_box_mock.assert_called_once_with(2)
85
86
        self.storehouse._get_or_create_a_box_from_list_of_boxes(
87
            'event', None, 'error'
88
        )
89
        create_box_mock.assert_called_once()
90
91
    @patch('napps.kytos.mef_eline.storehouse.log')
92
    def test_get_box_callback(self, log_mock):
93
        # pylint: disable=protected-access
94
        """Test _get_box_callback method."""
95
        self.storehouse._lock = Mock()
96
        data = Mock()
97
        data.box_id = 1
98
        self.storehouse._get_box_callback('event', data, None)
99
        self.storehouse._lock.release.assert_called_once()
100
        log_mock.error.assert_not_called()
101
102
        # test with error
103
        self.storehouse._lock.release.call_count = 0
104
        log_mock.debug.call_count = 0
105
        self.storehouse._get_box_callback('event', data, 'error')
106
        self.storehouse._lock.release.assert_called_once()
107
        log_mock.error.assert_called_once()
108
        self.assertEqual(log_mock.debug.call_count, 2)
109