|
@@ 342-369 (lines=28) @@
|
| 339 |
|
self.napp.check_storehouse_consistency(switch) |
| 340 |
|
mock_install_flows.assert_called() |
| 341 |
|
|
| 342 |
|
@patch('napps.kytos.flow_manager.main.Main._install_flows') |
| 343 |
|
@patch('napps.kytos.flow_manager.main.FlowFactory.get_class') |
| 344 |
|
def test_consistency_cookie_exception_range(self, *args): |
| 345 |
|
"""Test the consistency `cookie` exception range.""" |
| 346 |
|
(mock_flow_factory, mock_install_flows) = args |
| 347 |
|
dpid = "00:00:00:00:00:00:00:01" |
| 348 |
|
switch = get_switch_mock(dpid, 0x04) |
| 349 |
|
cookie_exception_interval = [(0x2b00000000000011, |
| 350 |
|
0x2b000000000000ff), 0x2b00000000000100] |
| 351 |
|
self.napp.cookie_exception_range = cookie_exception_interval |
| 352 |
|
flow = MagicMock() |
| 353 |
|
expected = [ |
| 354 |
|
{'cookie': 0x2b00000000000010, 'called': 1}, |
| 355 |
|
{'cookie': 0x2b00000000000013, 'called': 0}, |
| 356 |
|
{'cookie': 0x2b00000000000100, 'called': 0}, |
| 357 |
|
{'cookie': 0x2b00000000000101, 'called': 1}] |
| 358 |
|
# ignored flow |
| 359 |
|
for i in expected: |
| 360 |
|
mock_install_flows.call_count = 0 |
| 361 |
|
cookie = i['cookie'] |
| 362 |
|
called = i['called'] |
| 363 |
|
flow.cookie = cookie |
| 364 |
|
flow.as_dict.return_value = {'flow_1': 'data', 'cookie': cookie} |
| 365 |
|
switch.flows = [flow] |
| 366 |
|
mock_flow_factory.return_value = flow |
| 367 |
|
self.napp.stored_flows = {dpid: {"flow_list": flow}} |
| 368 |
|
self.napp.check_storehouse_consistency(switch) |
| 369 |
|
self.assertEqual(mock_install_flows.call_count, called) |
| 370 |
|
|
| 371 |
|
@patch('napps.kytos.flow_manager.main.Main._install_flows') |
| 372 |
|
@patch('napps.kytos.flow_manager.main.FlowFactory.get_class') |
|
@@ 371-396 (lines=26) @@
|
| 368 |
|
self.napp.check_storehouse_consistency(switch) |
| 369 |
|
self.assertEqual(mock_install_flows.call_count, called) |
| 370 |
|
|
| 371 |
|
@patch('napps.kytos.flow_manager.main.Main._install_flows') |
| 372 |
|
@patch('napps.kytos.flow_manager.main.FlowFactory.get_class') |
| 373 |
|
def test_consistency_table_id_exception_range(self, *args): |
| 374 |
|
"""Test the consistency `table_id` exception range.""" |
| 375 |
|
(mock_flow_factory, mock_install_flows) = args |
| 376 |
|
dpid = "00:00:00:00:00:00:00:01" |
| 377 |
|
switch = get_switch_mock(dpid, 0x04) |
| 378 |
|
table_id_exception_interval = [(1, 2), 3] |
| 379 |
|
self.napp.tab_id_exception_range = table_id_exception_interval |
| 380 |
|
flow = MagicMock() |
| 381 |
|
expected = [ |
| 382 |
|
{'table_id': 0, 'called': 1}, |
| 383 |
|
{'table_id': 3, 'called': 0}, |
| 384 |
|
{'table_id': 4, 'called': 1}] |
| 385 |
|
# ignored flow |
| 386 |
|
for i in expected: |
| 387 |
|
table_id = i['table_id'] |
| 388 |
|
called = i['called'] |
| 389 |
|
mock_install_flows.call_count = 0 |
| 390 |
|
flow.table_id = table_id |
| 391 |
|
flow.as_dict.return_value = {'flow_1': 'data', 'cookie': table_id} |
| 392 |
|
switch.flows = [flow] |
| 393 |
|
mock_flow_factory.return_value = flow |
| 394 |
|
self.napp.stored_flows = {dpid: {"flow_list": flow}} |
| 395 |
|
self.napp.check_storehouse_consistency(switch) |
| 396 |
|
self.assertEqual(mock_install_flows.call_count, called) |
| 397 |
|
|