Code Duplication    Length = 63-64 lines in 2 locations

tests/unit/test_main.py 2 locations

@@ 1368-1431 (lines=64) @@
1365
        evc_deploy.assert_not_called()
1366
        self.assertEqual(405, response.status_code)
1367
1368
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1369
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1370
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1371
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1372
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1373
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1374
    def test_update_circuit_invalid_json(self, *args):
1375
        """Test update a circuit circuit."""
1376
        # pylint: disable=too-many-locals
1377
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1378
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1379
1380
        validate_mock.return_value = True
1381
        save_evc_mock.return_value = True
1382
        sched_add_mock.return_value = True
1383
        evc_deploy_mock.return_value = True
1384
        uni1 = create_autospec(UNI)
1385
        uni2 = create_autospec(UNI)
1386
        uni1.interface = create_autospec(Interface)
1387
        uni2.interface = create_autospec(Interface)
1388
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1389
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1390
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1391
1392
        api = self.get_app_test_client(self.napp)
1393
        payload1 = {
1394
            "name": "my evc1",
1395
            "uni_a": {
1396
                "interface_id": "00:00:00:00:00:00:00:01:1",
1397
                "tag": {
1398
                    "tag_type": 1,
1399
                    "value": 80
1400
                }
1401
            },
1402
            "uni_z": {
1403
                "interface_id": "00:00:00:00:00:00:00:02:2",
1404
                "tag": {
1405
                    "tag_type": 1,
1406
                    "value": 1
1407
                }
1408
            },
1409
            "dynamic_backup_path": True
1410
        }
1411
1412
        payload2 = {
1413
            "dynamic_backup_path": False,
1414
        }
1415
1416
        evc_as_dict_mock.return_value = payload1
1417
        response = api.post(f'{self.server_name_url}/v2/evc/',
1418
                            data=json.dumps(payload1),
1419
                            content_type='application/json')
1420
        self.assertEqual(201, response.status_code)
1421
1422
        evc_as_dict_mock.return_value = payload2
1423
        current_data = json.loads(response.data)
1424
        circuit_id = current_data['circuit_id']
1425
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1426
                             data=payload2,
1427
                             content_type='application/json')
1428
        current_data = json.loads(response.data)
1429
        expected_data = 'The request body is not a well-formed JSON.'
1430
        self.assertEqual(current_data['description'], expected_data)
1431
        self.assertEqual(400, response.status_code)
1432
1433
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1434
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
@@ 1508-1570 (lines=63) @@
1505
        self.assertEqual(400, response.status_code)
1506
        self.assertEqual(current_data['description'], expected_data)
1507
1508
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1509
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1510
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1511
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1512
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1513
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1514
    def test_update_evc_no_json_mime(self, *args):
1515
        """Test update a circuit with wrong mimetype."""
1516
        # pylint: disable=too-many-locals
1517
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1518
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1519
1520
        validate_mock.return_value = True
1521
        save_evc_mock.return_value = True
1522
        sched_add_mock.return_value = True
1523
        evc_deploy_mock.return_value = True
1524
        uni1 = create_autospec(UNI)
1525
        uni2 = create_autospec(UNI)
1526
        uni1.interface = create_autospec(Interface)
1527
        uni2.interface = create_autospec(Interface)
1528
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1529
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1530
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1531
1532
        api = self.get_app_test_client(self.napp)
1533
        payload1 = {
1534
            "name": "my evc1",
1535
            "uni_a": {
1536
                "interface_id": "00:00:00:00:00:00:00:01:1",
1537
                "tag": {
1538
                    "tag_type": 1,
1539
                    "value": 80
1540
                }
1541
            },
1542
            "uni_z": {
1543
                "interface_id": "00:00:00:00:00:00:00:02:2",
1544
                "tag": {
1545
                    "tag_type": 1,
1546
                    "value": 1
1547
                }
1548
            },
1549
            "dynamic_backup_path": True
1550
        }
1551
1552
        payload2 = {
1553
            "dynamic_backup_path": False
1554
        }
1555
1556
        evc_as_dict_mock.return_value = payload1
1557
        response = api.post(f'{self.server_name_url}/v2/evc/',
1558
                            data=json.dumps(payload1),
1559
                            content_type='application/json')
1560
        self.assertEqual(201, response.status_code)
1561
1562
        evc_as_dict_mock.return_value = payload2
1563
        current_data = json.loads(response.data)
1564
        circuit_id = current_data['circuit_id']
1565
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1566
                             data=payload2)
1567
        current_data = json.loads(response.data)
1568
        expected_data = 'The request body mimetype is not application/json.'
1569
        self.assertEqual(current_data['description'], expected_data)
1570
        self.assertEqual(415, response.status_code)
1571
1572
    def test_delete_no_evc(self):
1573
        """Test delete when EVC does not exist."""