Code Duplication    Length = 63-64 lines in 2 locations

tests/unit/test_main.py 2 locations

@@ 1257-1320 (lines=64) @@
1254
        evc_deploy.assert_not_called()
1255
        self.assertEqual(405, response.status_code)
1256
1257
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1258
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1259
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1260
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1261
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1262
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1263
    def test_update_circuit_invalid_json(self, *args):
1264
        """Test update a circuit circuit."""
1265
        # pylint: disable=too-many-locals
1266
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1267
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1268
1269
        validate_mock.return_value = True
1270
        save_evc_mock.return_value = True
1271
        sched_add_mock.return_value = True
1272
        evc_deploy_mock.return_value = True
1273
        uni1 = create_autospec(UNI)
1274
        uni2 = create_autospec(UNI)
1275
        uni1.interface = create_autospec(Interface)
1276
        uni2.interface = create_autospec(Interface)
1277
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1278
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1279
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1280
1281
        api = self.get_app_test_client(self.napp)
1282
        payload1 = {
1283
            "name": "my evc1",
1284
            "uni_a": {
1285
                "interface_id": "00:00:00:00:00:00:00:01:1",
1286
                "tag": {
1287
                    "tag_type": 1,
1288
                    "value": 80
1289
                }
1290
            },
1291
            "uni_z": {
1292
                "interface_id": "00:00:00:00:00:00:00:02:2",
1293
                "tag": {
1294
                    "tag_type": 1,
1295
                    "value": 1
1296
                }
1297
            },
1298
            "dynamic_backup_path": True
1299
        }
1300
1301
        payload2 = {
1302
            "dynamic_backup_path": False,
1303
        }
1304
1305
        evc_as_dict_mock.return_value = payload1
1306
        response = api.post(f'{self.server_name_url}/v2/evc/',
1307
                            data=json.dumps(payload1),
1308
                            content_type='application/json')
1309
        self.assertEqual(201, response.status_code)
1310
1311
        evc_as_dict_mock.return_value = payload2
1312
        current_data = json.loads(response.data)
1313
        circuit_id = current_data['circuit_id']
1314
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1315
                             data=payload2,
1316
                             content_type='application/json')
1317
        current_data = json.loads(response.data)
1318
        expected_data = 'The request body is not a well-formed JSON.'
1319
        self.assertEqual(current_data['description'], expected_data)
1320
        self.assertEqual(400, response.status_code)
1321
1322
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1323
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
@@ 1397-1459 (lines=63) @@
1394
        self.assertEqual(400, response.status_code)
1395
        self.assertEqual(current_data['description'], expected_data)
1396
1397
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1398
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1399
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1400
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1401
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1402
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1403
    def test_update_evc_no_json_mime(self, *args):
1404
        """Test update a circuit with wrong mimetype."""
1405
        # pylint: disable=too-many-locals
1406
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1407
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1408
1409
        validate_mock.return_value = True
1410
        save_evc_mock.return_value = True
1411
        sched_add_mock.return_value = True
1412
        evc_deploy_mock.return_value = True
1413
        uni1 = create_autospec(UNI)
1414
        uni2 = create_autospec(UNI)
1415
        uni1.interface = create_autospec(Interface)
1416
        uni2.interface = create_autospec(Interface)
1417
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1418
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1419
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1420
1421
        api = self.get_app_test_client(self.napp)
1422
        payload1 = {
1423
            "name": "my evc1",
1424
            "uni_a": {
1425
                "interface_id": "00:00:00:00:00:00:00:01:1",
1426
                "tag": {
1427
                    "tag_type": 1,
1428
                    "value": 80
1429
                }
1430
            },
1431
            "uni_z": {
1432
                "interface_id": "00:00:00:00:00:00:00:02:2",
1433
                "tag": {
1434
                    "tag_type": 1,
1435
                    "value": 1
1436
                }
1437
            },
1438
            "dynamic_backup_path": True
1439
        }
1440
1441
        payload2 = {
1442
            "dynamic_backup_path": False
1443
        }
1444
1445
        evc_as_dict_mock.return_value = payload1
1446
        response = api.post(f'{self.server_name_url}/v2/evc/',
1447
                            data=json.dumps(payload1),
1448
                            content_type='application/json')
1449
        self.assertEqual(201, response.status_code)
1450
1451
        evc_as_dict_mock.return_value = payload2
1452
        current_data = json.loads(response.data)
1453
        circuit_id = current_data['circuit_id']
1454
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1455
                             data=payload2)
1456
        current_data = json.loads(response.data)
1457
        expected_data = 'The request body mimetype is not application/json.'
1458
        self.assertEqual(current_data['description'], expected_data)
1459
        self.assertEqual(415, response.status_code)
1460
1461
    def test_delete_no_evc(self):
1462
        """Test delete when EVC does not exist."""