Code Duplication    Length = 63-64 lines in 2 locations

tests/unit/test_main.py 2 locations

@@ 1226-1289 (lines=64) @@
1223
        evc_deploy.assert_not_called()
1224
        self.assertEqual(405, response.status_code)
1225
1226
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1227
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1228
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1229
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1230
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1231
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1232
    def test_update_circuit_invalid_json(self, *args):
1233
        """Test update a circuit circuit."""
1234
        # pylint: disable=too-many-locals
1235
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1236
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1237
1238
        validate_mock.return_value = True
1239
        save_evc_mock.return_value = True
1240
        sched_add_mock.return_value = True
1241
        evc_deploy_mock.return_value = True
1242
        uni1 = create_autospec(UNI)
1243
        uni2 = create_autospec(UNI)
1244
        uni1.interface = create_autospec(Interface)
1245
        uni2.interface = create_autospec(Interface)
1246
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1247
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1248
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1249
1250
        api = self.get_app_test_client(self.napp)
1251
        payload1 = {
1252
            "name": "my evc1",
1253
            "uni_a": {
1254
                "interface_id": "00:00:00:00:00:00:00:01:1",
1255
                "tag": {
1256
                    "tag_type": 1,
1257
                    "value": 80
1258
                }
1259
            },
1260
            "uni_z": {
1261
                "interface_id": "00:00:00:00:00:00:00:02:2",
1262
                "tag": {
1263
                    "tag_type": 1,
1264
                    "value": 1
1265
                }
1266
            },
1267
            "dynamic_backup_path": True
1268
        }
1269
1270
        payload2 = {
1271
            "dynamic_backup_path": False,
1272
        }
1273
1274
        evc_as_dict_mock.return_value = payload1
1275
        response = api.post(f'{self.server_name_url}/v2/evc/',
1276
                            data=json.dumps(payload1),
1277
                            content_type='application/json')
1278
        self.assertEqual(201, response.status_code)
1279
1280
        evc_as_dict_mock.return_value = payload2
1281
        current_data = json.loads(response.data)
1282
        circuit_id = current_data['circuit_id']
1283
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1284
                             data=payload2,
1285
                             content_type='application/json')
1286
        current_data = json.loads(response.data)
1287
        expected_data = 'The request body is not a well-formed JSON.'
1288
        self.assertEqual(current_data['description'], expected_data)
1289
        self.assertEqual(400, response.status_code)
1290
1291
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1292
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
@@ 1366-1428 (lines=63) @@
1363
        self.assertEqual(400, response.status_code)
1364
        self.assertEqual(current_data['description'], expected_data)
1365
1366
    @patch('napps.kytos.mef_eline.models.evc.EVC.deploy')
1367
    @patch('napps.kytos.mef_eline.scheduler.Scheduler.add')
1368
    @patch('napps.kytos.mef_eline.main.Main._uni_from_dict')
1369
    @patch('napps.kytos.mef_eline.storehouse.StoreHouse.save_evc')
1370
    @patch('napps.kytos.mef_eline.models.evc.EVC._validate')
1371
    @patch('napps.kytos.mef_eline.main.EVC.as_dict')
1372
    def test_update_evc_no_json_mime(self, *args):
1373
        """Test update a circuit with wrong mimetype."""
1374
        # pylint: disable=too-many-locals
1375
        (evc_as_dict_mock, validate_mock, save_evc_mock,
1376
         uni_from_dict_mock, sched_add_mock, evc_deploy_mock) = args
1377
1378
        validate_mock.return_value = True
1379
        save_evc_mock.return_value = True
1380
        sched_add_mock.return_value = True
1381
        evc_deploy_mock.return_value = True
1382
        uni1 = create_autospec(UNI)
1383
        uni2 = create_autospec(UNI)
1384
        uni1.interface = create_autospec(Interface)
1385
        uni2.interface = create_autospec(Interface)
1386
        uni1.interface.switch = '00:00:00:00:00:00:00:01'
1387
        uni2.interface.switch = '00:00:00:00:00:00:00:02'
1388
        uni_from_dict_mock.side_effect = [uni1, uni2, uni1, uni2]
1389
1390
        api = self.get_app_test_client(self.napp)
1391
        payload1 = {
1392
            "name": "my evc1",
1393
            "uni_a": {
1394
                "interface_id": "00:00:00:00:00:00:00:01:1",
1395
                "tag": {
1396
                    "tag_type": 1,
1397
                    "value": 80
1398
                }
1399
            },
1400
            "uni_z": {
1401
                "interface_id": "00:00:00:00:00:00:00:02:2",
1402
                "tag": {
1403
                    "tag_type": 1,
1404
                    "value": 1
1405
                }
1406
            },
1407
            "dynamic_backup_path": True
1408
        }
1409
1410
        payload2 = {
1411
            "dynamic_backup_path": False
1412
        }
1413
1414
        evc_as_dict_mock.return_value = payload1
1415
        response = api.post(f'{self.server_name_url}/v2/evc/',
1416
                            data=json.dumps(payload1),
1417
                            content_type='application/json')
1418
        self.assertEqual(201, response.status_code)
1419
1420
        evc_as_dict_mock.return_value = payload2
1421
        current_data = json.loads(response.data)
1422
        circuit_id = current_data['circuit_id']
1423
        response = api.patch(f'{self.server_name_url}/v2/evc/{circuit_id}',
1424
                             data=payload2)
1425
        current_data = json.loads(response.data)
1426
        expected_data = 'The request body mimetype is not application/json.'
1427
        self.assertEqual(current_data['description'], expected_data)
1428
        self.assertEqual(415, response.status_code)
1429
1430
    def test_delete_no_evc(self):
1431
        """Test delete when EVC does not exist."""