Code Duplication    Length = 63-64 lines in 2 locations

tests/unit/test_main.py 2 locations

@@ 1383-1446 (lines=64) @@
1380
        evc_deploy.assert_not_called()
1381
        self.assertEqual(405, response.status_code)
1382
1383
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1384
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1385
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1386
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1387
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1388
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1389
    def test_update_circuit_invalid_json(self, *args):
1390
        """Test update a circuit circuit."""
1391
        # pylint: disable=too-many-locals
1392
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1393
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1394
1395
        validate_mock.return_value = True
1396
        save_evc_mock.return_value = True
1397
        sched_add_mock.return_value = True
1398
        evc_deploy_mock.return_value = True
1399
        uni1 = create_autospec(UNI)
1400
        uni2 = create_autospec(UNI)
1401
        uni1.interface = create_autospec(Interface)
1402
        uni2.interface = create_autospec(Interface)
1403
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1404
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1405
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1406
1407
        api = self.get_app_test_client(self.napp)
1408
        payload1 = {
1409
            "name": "my evc1",
1410
            "uni_a": {
1411
                "interface_id": "00:00:00:00:00:00:00:01:1",
1412
                "tag": {
1413
                    "tag_type": 1,
1414
                    "value": 80
1415
                }
1416
            },
1417
            "uni_z": {
1418
                "interface_id": "00:00:00:00:00:00:00:02:2",
1419
                "tag": {
1420
                    "tag_type": 1,
1421
                    "value": 1
1422
                }
1423
            },
1424
            "dynamic_backup_path": True
1425
        }
1426
1427
        payload2 = {
1428
            "dynamic_backup_path": False,
1429
        }
1430
1431
        evc_as_dict_mock.return_value = payload1
1432
        response = api.post(f'{self.server_name_url}/v2/evc/',
1433
                            data=json.dumps(payload1),
1434
                            content_type='application/json')
1435
        self.assertEqual(201, response.status_code)
1436
1437
        evc_as_dict_mock.return_value = payload2
1438
        current_data = json.loads(response.data)
1439
        circuit_id = current_data['circuit_id']
1440
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1441
                             data=payload2,
1442
                             content_type='application/json')
1443
        current_data = json.loads(response.data)
1444
        expected_data = 'The request body is not a well-formed JSON.'
1445
        self.assertEqual(current_data['description'], expected_data)
1446
        self.assertEqual(400, response.status_code)
1447
1448
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1449
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
@@ 1523-1585 (lines=63) @@
1520
        self.assertEqual(400, response.status_code)
1521
        self.assertEqual(current_data['description'], expected_data)
1522
1523
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1524
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1525
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1526
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1527
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1528
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1529
    def test_update_evc_no_json_mime(self, *args):
1530
        """Test update a circuit with wrong mimetype."""
1531
        # pylint: disable=too-many-locals
1532
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1533
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1534
1535
        validate_mock.return_value = True
1536
        save_evc_mock.return_value = True
1537
        sched_add_mock.return_value = True
1538
        evc_deploy_mock.return_value = True
1539
        uni1 = create_autospec(UNI)
1540
        uni2 = create_autospec(UNI)
1541
        uni1.interface = create_autospec(Interface)
1542
        uni2.interface = create_autospec(Interface)
1543
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1544
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1545
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1546
1547
        api = self.get_app_test_client(self.napp)
1548
        payload1 = {
1549
            "name": "my evc1",
1550
            "uni_a": {
1551
                "interface_id": "00:00:00:00:00:00:00:01:1",
1552
                "tag": {
1553
                    "tag_type": 1,
1554
                    "value": 80
1555
                }
1556
            },
1557
            "uni_z": {
1558
                "interface_id": "00:00:00:00:00:00:00:02:2",
1559
                "tag": {
1560
                    "tag_type": 1,
1561
                    "value": 1
1562
                }
1563
            },
1564
            "dynamic_backup_path": True
1565
        }
1566
1567
        payload2 = {
1568
            "dynamic_backup_path": False
1569
        }
1570
1571
        evc_as_dict_mock.return_value = payload1
1572
        response = api.post(f'{self.server_name_url}/v2/evc/',
1573
                            data=json.dumps(payload1),
1574
                            content_type='application/json')
1575
        self.assertEqual(201, response.status_code)
1576
1577
        evc_as_dict_mock.return_value = payload2
1578
        current_data = json.loads(response.data)
1579
        circuit_id = current_data['circuit_id']
1580
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1581
                             data=payload2)
1582
        current_data = json.loads(response.data)
1583
        expected_data = 'The request body mimetype is not application/json.'
1584
        self.assertEqual(current_data['description'], expected_data)
1585
        self.assertEqual(415, response.status_code)
1586
1587
    def test_delete_no_evc(self):
1588
        """Test delete when EVC does not exist."""