|
@@ 342-391 (lines=50) @@
|
| 339 |
|
self.assertEqual(mock_interface_1.enable.call_count, 0) |
| 340 |
|
self.assertEqual(mock_interface_2.enable.call_count, 0) |
| 341 |
|
|
| 342 |
|
@patch('napps.kytos.topology.main.Main.save_status_on_storehouse') |
| 343 |
|
def test_disable_interfaces(self, mock_save_status): |
| 344 |
|
"""Test disable_interfaces.""" |
| 345 |
|
interface_id = '00:00:00:00:00:00:00:01:1' |
| 346 |
|
dpid = '00:00:00:00:00:00:00:01' |
| 347 |
|
expected = 'Operation successful' |
| 348 |
|
mock_switch = create_autospec(Switch) |
| 349 |
|
mock_interface_1 = create_autospec(Interface) |
| 350 |
|
mock_interface_2 = create_autospec(Interface) |
| 351 |
|
mock_switch.interfaces = {1: mock_interface_1, 2: mock_interface_2} |
| 352 |
|
self.napp.controller.switches = {'00:00:00:00:00:00:00:01': |
| 353 |
|
mock_switch} |
| 354 |
|
api = get_test_client(self.napp.controller, self.napp) |
| 355 |
|
|
| 356 |
|
url = f'{self.server_name_url}/v3/interfaces/{interface_id}/disable' |
| 357 |
|
response = api.post(url) |
| 358 |
|
self.assertEqual(response.status_code, 200, response.data) |
| 359 |
|
self.assertEqual(expected, json.loads(response.data)) |
| 360 |
|
self.assertEqual(mock_interface_1.disable.call_count, 1) |
| 361 |
|
self.assertEqual(mock_interface_2.disable.call_count, 0) |
| 362 |
|
mock_save_status.assert_called() |
| 363 |
|
|
| 364 |
|
mock_interface_1.disable.call_count = 0 |
| 365 |
|
mock_interface_2.disable.call_count = 0 |
| 366 |
|
url = f'{self.server_name_url}/v3/interfaces/switch/{dpid}/disable' |
| 367 |
|
response = api.post(url) |
| 368 |
|
self.assertEqual(response.status_code, 200, response.data) |
| 369 |
|
self.assertEqual(expected, json.loads(response.data)) |
| 370 |
|
self.assertEqual(mock_interface_1.disable.call_count, 1) |
| 371 |
|
self.assertEqual(mock_interface_2.disable.call_count, 1) |
| 372 |
|
|
| 373 |
|
# test interface not found |
| 374 |
|
interface_id = '00:00:00:00:00:00:00:01:3' |
| 375 |
|
mock_interface_1.disable.call_count = 0 |
| 376 |
|
mock_interface_2.disable.call_count = 0 |
| 377 |
|
url = f'{self.server_name_url}/v3/interfaces/{interface_id}/disable' |
| 378 |
|
response = api.post(url) |
| 379 |
|
self.assertEqual(response.status_code, 409, response.data) |
| 380 |
|
self.assertEqual(mock_interface_1.disable.call_count, 0) |
| 381 |
|
self.assertEqual(mock_interface_2.disable.call_count, 0) |
| 382 |
|
|
| 383 |
|
# test switch not found |
| 384 |
|
dpid = '00:00:00:00:00:00:00:02' |
| 385 |
|
expected_fail = f"Switch not found: '{dpid}'" |
| 386 |
|
url = f'{self.server_name_url}/v3/interfaces/switch/{dpid}/disable' |
| 387 |
|
response = api.post(url) |
| 388 |
|
self.assertEqual(response.status_code, 404, response.data) |
| 389 |
|
self.assertEqual(expected_fail, json.loads(response.data)) |
| 390 |
|
self.assertEqual(mock_interface_1.disable.call_count, 0) |
| 391 |
|
self.assertEqual(mock_interface_2.disable.call_count, 0) |
| 392 |
|
|
| 393 |
|
def test_get_interface_metadata(self): |
| 394 |
|
"""Test get_interface_metada.""" |
|
@@ 291-340 (lines=50) @@
|
| 288 |
|
mock_metadata_changes.assert_called() |
| 289 |
|
self.assertEqual(response.status_code, 404, response.data) |
| 290 |
|
|
| 291 |
|
@patch('napps.kytos.topology.main.Main.save_status_on_storehouse') |
| 292 |
|
def test_enable_interfaces(self, mock_save_status): |
| 293 |
|
"""Test enable_interfaces.""" |
| 294 |
|
mock_switch = create_autospec(Switch) |
| 295 |
|
mock_interface_1 = create_autospec(Interface) |
| 296 |
|
mock_interface_2 = create_autospec(Interface) |
| 297 |
|
mock_switch.interfaces = {1: mock_interface_1, 2: mock_interface_2} |
| 298 |
|
self.napp.controller.switches = {'00:00:00:00:00:00:00:01': |
| 299 |
|
mock_switch} |
| 300 |
|
api = get_test_client(self.napp.controller, self.napp) |
| 301 |
|
expected_success = 'Operation successful' |
| 302 |
|
|
| 303 |
|
interface_id = '00:00:00:00:00:00:00:01:1' |
| 304 |
|
url = f'{self.server_name_url}/v3/interfaces/{interface_id}/enable' |
| 305 |
|
response = api.post(url) |
| 306 |
|
self.assertEqual(response.status_code, 200, response.data) |
| 307 |
|
self.assertEqual(expected_success, json.loads(response.data)) |
| 308 |
|
self.assertEqual(mock_interface_1.enable.call_count, 1) |
| 309 |
|
self.assertEqual(mock_interface_2.enable.call_count, 0) |
| 310 |
|
mock_save_status.assert_called() |
| 311 |
|
|
| 312 |
|
dpid = '00:00:00:00:00:00:00:01' |
| 313 |
|
mock_interface_1.enable.call_count = 0 |
| 314 |
|
mock_interface_2.enable.call_count = 0 |
| 315 |
|
url = f'{self.server_name_url}/v3/interfaces/switch/{dpid}/enable' |
| 316 |
|
response = api.post(url) |
| 317 |
|
self.assertEqual(response.status_code, 200, response.data) |
| 318 |
|
self.assertEqual(expected_success, json.loads(response.data)) |
| 319 |
|
self.assertEqual(mock_interface_1.enable.call_count, 1) |
| 320 |
|
self.assertEqual(mock_interface_2.enable.call_count, 1) |
| 321 |
|
|
| 322 |
|
# test interface not found |
| 323 |
|
interface_id = '00:00:00:00:00:00:00:01:3' |
| 324 |
|
mock_interface_1.enable.call_count = 0 |
| 325 |
|
mock_interface_2.enable.call_count = 0 |
| 326 |
|
url = f'{self.server_name_url}/v3/interfaces/{interface_id}/enable' |
| 327 |
|
response = api.post(url) |
| 328 |
|
self.assertEqual(response.status_code, 409, response.data) |
| 329 |
|
self.assertEqual(mock_interface_1.enable.call_count, 0) |
| 330 |
|
self.assertEqual(mock_interface_2.enable.call_count, 0) |
| 331 |
|
|
| 332 |
|
# test switch not found |
| 333 |
|
dpid = '00:00:00:00:00:00:00:02' |
| 334 |
|
expected_fail = f"Switch not found: '{dpid}'" |
| 335 |
|
url = f'{self.server_name_url}/v3/interfaces/switch/{dpid}/enable' |
| 336 |
|
response = api.post(url) |
| 337 |
|
self.assertEqual(response.status_code, 404, response.data) |
| 338 |
|
self.assertEqual(expected_fail, json.loads(response.data)) |
| 339 |
|
self.assertEqual(mock_interface_1.enable.call_count, 0) |
| 340 |
|
self.assertEqual(mock_interface_2.enable.call_count, 0) |
| 341 |
|
|
| 342 |
|
@patch('napps.kytos.topology.main.Main.save_status_on_storehouse') |
| 343 |
|
def test_disable_interfaces(self, mock_save_status): |