ipfabric_netbox 4.3.0b5__py3-none-any.whl → 4.3.0b6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ipfabric_netbox might be problematic. Click here for more details.
- ipfabric_netbox/__init__.py +1 -1
- ipfabric_netbox/choices.py +2 -2
- ipfabric_netbox/forms.py +137 -0
- ipfabric_netbox/models.py +1 -1
- ipfabric_netbox/tables.py +2 -0
- ipfabric_netbox/tests/test_views.py +210 -157
- ipfabric_netbox/urls.py +24 -108
- ipfabric_netbox/views.py +283 -130
- {ipfabric_netbox-4.3.0b5.dist-info → ipfabric_netbox-4.3.0b6.dist-info}/METADATA +1 -1
- {ipfabric_netbox-4.3.0b5.dist-info → ipfabric_netbox-4.3.0b6.dist-info}/RECORD +11 -11
- {ipfabric_netbox-4.3.0b5.dist-info → ipfabric_netbox-4.3.0b6.dist-info}/WHEEL +0 -0
|
@@ -63,8 +63,8 @@ class IPFabricSourceTestCase(
|
|
|
63
63
|
ViewTestCases.DeleteObjectViewTestCase,
|
|
64
64
|
ViewTestCases.ListObjectsViewTestCase,
|
|
65
65
|
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
67
|
+
ViewTestCases.BulkEditObjectsViewTestCase,
|
|
68
68
|
# ViewTestCases.BulkImportObjectsViewTestCase,
|
|
69
69
|
):
|
|
70
70
|
model = IPFabricSource
|
|
@@ -84,7 +84,7 @@ class IPFabricSourceTestCase(
|
|
|
84
84
|
),
|
|
85
85
|
IPFabricSource(
|
|
86
86
|
name="IP Fabric Source 2",
|
|
87
|
-
type=IPFabricSourceTypeChoices.
|
|
87
|
+
type=IPFabricSourceTypeChoices.LOCAL,
|
|
88
88
|
url="https://ipfabric2.example.com",
|
|
89
89
|
status=DataSourceStatusChoices.COMPLETED,
|
|
90
90
|
parameters={"auth": "token2", "verify": False, "timeout": 60},
|
|
@@ -488,7 +488,6 @@ class IPFabricSnapshotTestCase(
|
|
|
488
488
|
self.assertTrue(response_snapshot.ipf_data.exists())
|
|
489
489
|
|
|
490
490
|
|
|
491
|
-
# TODO: Get back to these tests
|
|
492
491
|
class IPFabricDataTestCase(
|
|
493
492
|
PluginPathMixin,
|
|
494
493
|
# ViewTestCases.GetObjectViewTestCase,
|
|
@@ -607,8 +606,8 @@ class IPFabricSyncTestCase(
|
|
|
607
606
|
ViewTestCases.DeleteObjectViewTestCase,
|
|
608
607
|
ViewTestCases.ListObjectsViewTestCase,
|
|
609
608
|
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
610
|
-
|
|
611
|
-
|
|
609
|
+
ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
610
|
+
ViewTestCases.BulkEditObjectsViewTestCase,
|
|
612
611
|
# ViewTestCases.BulkImportObjectsViewTestCase,
|
|
613
612
|
):
|
|
614
613
|
model = IPFabricSync
|
|
@@ -839,9 +838,9 @@ class IPFabricTransformMapGroupTestCase(
|
|
|
839
838
|
ViewTestCases.DeleteObjectViewTestCase,
|
|
840
839
|
ViewTestCases.ListObjectsViewTestCase,
|
|
841
840
|
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
841
|
+
ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
842
|
+
ViewTestCases.BulkEditObjectsViewTestCase,
|
|
843
|
+
ViewTestCases.BulkImportObjectsViewTestCase,
|
|
845
844
|
):
|
|
846
845
|
model = IPFabricTransformMapGroup
|
|
847
846
|
|
|
@@ -870,6 +869,21 @@ class IPFabricTransformMapGroupTestCase(
|
|
|
870
869
|
"description": "Test group description",
|
|
871
870
|
}
|
|
872
871
|
|
|
872
|
+
cls.bulk_edit_data = {
|
|
873
|
+
"description": "Bulk updated description",
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
cls.csv_data = (
|
|
877
|
+
"name,description",
|
|
878
|
+
"First imported group,import test 1",
|
|
879
|
+
"Second imported group,import test 2",
|
|
880
|
+
)
|
|
881
|
+
cls.csv_update_data = (
|
|
882
|
+
"id,name,description",
|
|
883
|
+
f"{groups[0].pk},First renamed group,changed import test 1", # noqa: E231
|
|
884
|
+
f"{groups[1].pk},Second renamed group,changed import test 2", # noqa: E231
|
|
885
|
+
)
|
|
886
|
+
|
|
873
887
|
|
|
874
888
|
class IPFabricTransformMapTestCase(
|
|
875
889
|
PluginPathMixin,
|
|
@@ -880,9 +894,9 @@ class IPFabricTransformMapTestCase(
|
|
|
880
894
|
ViewTestCases.DeleteObjectViewTestCase,
|
|
881
895
|
ViewTestCases.ListObjectsViewTestCase,
|
|
882
896
|
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
897
|
+
ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
898
|
+
ViewTestCases.BulkEditObjectsViewTestCase,
|
|
899
|
+
ViewTestCases.BulkImportObjectsViewTestCase,
|
|
886
900
|
):
|
|
887
901
|
model = IPFabricTransformMap
|
|
888
902
|
user_permissions = (
|
|
@@ -893,7 +907,11 @@ class IPFabricTransformMapTestCase(
|
|
|
893
907
|
@classmethod
|
|
894
908
|
def setUpTestData(cls):
|
|
895
909
|
# Number of IPFabricTransformMaps created during migration
|
|
896
|
-
|
|
910
|
+
# Hardcoded since we need to make sure we have the correct count
|
|
911
|
+
cls.default_maps = IPFabricTransformMap.objects.filter(group__isnull=True)
|
|
912
|
+
assert cls.default_maps.count() == 14
|
|
913
|
+
# Remove all transform maps created in migrations to not interfere with tests
|
|
914
|
+
IPFabricTransformMap.objects.filter(group__isnull=True).delete()
|
|
897
915
|
|
|
898
916
|
# Create required dependencies
|
|
899
917
|
group = IPFabricTransformMapGroup.objects.create(
|
|
@@ -904,14 +922,16 @@ class IPFabricTransformMapTestCase(
|
|
|
904
922
|
name="Test Cloning Group",
|
|
905
923
|
description="Test group for cloning transform maps",
|
|
906
924
|
)
|
|
925
|
+
bulk_edit_group = IPFabricTransformMapGroup.objects.create(
|
|
926
|
+
name="Test Bulk Edit Group",
|
|
927
|
+
description="Test group for bulk editing transform maps",
|
|
928
|
+
)
|
|
907
929
|
|
|
908
|
-
# Create IPFabricTransformMap instances with groups for testing
|
|
909
930
|
maps = (
|
|
910
931
|
IPFabricTransformMap(
|
|
911
932
|
name="Device Transform Map",
|
|
912
933
|
source_model="device",
|
|
913
934
|
target_model=ContentType.objects.get(app_label="dcim", model="device"),
|
|
914
|
-
group=group,
|
|
915
935
|
),
|
|
916
936
|
IPFabricTransformMap(
|
|
917
937
|
name="Site Transform Map",
|
|
@@ -919,10 +939,30 @@ class IPFabricTransformMapTestCase(
|
|
|
919
939
|
target_model=ContentType.objects.get(app_label="dcim", model="site"),
|
|
920
940
|
group=group,
|
|
921
941
|
),
|
|
942
|
+
IPFabricTransformMap(
|
|
943
|
+
name="VLAN Transform Map",
|
|
944
|
+
source_model="vlan",
|
|
945
|
+
target_model=ContentType.objects.get(app_label="ipam", model="vlan"),
|
|
946
|
+
group=group,
|
|
947
|
+
),
|
|
922
948
|
)
|
|
923
949
|
for map_obj in maps:
|
|
924
950
|
map_obj.save()
|
|
925
951
|
|
|
952
|
+
IPFabricTransformField.objects.create(
|
|
953
|
+
transform_map=maps[0],
|
|
954
|
+
source_field="hostname",
|
|
955
|
+
target_field="name",
|
|
956
|
+
template="{{ object.hostname }}",
|
|
957
|
+
)
|
|
958
|
+
IPFabricRelationshipField.objects.create(
|
|
959
|
+
transform_map=maps[0],
|
|
960
|
+
source_model=ContentType.objects.get(app_label="dcim", model="site"),
|
|
961
|
+
target_field="site",
|
|
962
|
+
template="{{ object.siteName }}",
|
|
963
|
+
coalesce=True,
|
|
964
|
+
)
|
|
965
|
+
|
|
926
966
|
cls.form_data = {
|
|
927
967
|
"name": "Test Transform Map X",
|
|
928
968
|
"source_model": "device",
|
|
@@ -932,6 +972,22 @@ class IPFabricTransformMapTestCase(
|
|
|
932
972
|
"group": group.pk,
|
|
933
973
|
}
|
|
934
974
|
|
|
975
|
+
cls.bulk_edit_data = {
|
|
976
|
+
"group": bulk_edit_group.pk,
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
cls.csv_data = (
|
|
980
|
+
"name,source_model,target_model,group",
|
|
981
|
+
"Manufacturer Transform Map,device,dcim.manufacturer,Test Group",
|
|
982
|
+
"IPAddress Transform Map,ipaddress,ipam.ipaddress,Test Group",
|
|
983
|
+
"Platform Transform Map,device,dcim.platform,",
|
|
984
|
+
)
|
|
985
|
+
cls.csv_update_data = (
|
|
986
|
+
"id,name,source_model,target_model,group",
|
|
987
|
+
f"{maps[0].pk},Prefix Transform Map,prefix,ipam.prefix,Test Group", # noqa: E231
|
|
988
|
+
f"{maps[1].pk},Manufacturer Transform Map,device,dcim.manufacturer,", # noqa: E231
|
|
989
|
+
)
|
|
990
|
+
|
|
935
991
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=["*"])
|
|
936
992
|
def test_get_relationships(self):
|
|
937
993
|
transform_map = self._get_queryset().first()
|
|
@@ -1166,7 +1222,8 @@ class IPFabricTransformMapTestCase(
|
|
|
1166
1222
|
# Should show form errors
|
|
1167
1223
|
self.assertHttpStatus(response, 200)
|
|
1168
1224
|
self.assertContains(
|
|
1169
|
-
response,
|
|
1225
|
+
response,
|
|
1226
|
+
"A transform map with group 'Test Group' and target model 'DCIM | site' already exists.",
|
|
1170
1227
|
)
|
|
1171
1228
|
self.assertIn("X-Debug-HTMX-Partial", response)
|
|
1172
1229
|
|
|
@@ -1237,10 +1294,7 @@ class IPFabricTransformMapTestCase(
|
|
|
1237
1294
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=["*"])
|
|
1238
1295
|
def test_restore_view_post_success(self):
|
|
1239
1296
|
"""Test POST request to restore view successfully deletes ungrouped maps and rebuilds them."""
|
|
1240
|
-
|
|
1241
|
-
self.assertEqual(len(default_maps), self.default_maps_count)
|
|
1242
|
-
|
|
1243
|
-
# Remove all transform maps created in migrations
|
|
1297
|
+
# Remove all existing transform maps
|
|
1244
1298
|
IPFabricTransformMap.objects.filter(group__isnull=True).delete()
|
|
1245
1299
|
self.assertEqual(
|
|
1246
1300
|
IPFabricTransformMap.objects.filter(group__isnull=True).count(), 0
|
|
@@ -1258,9 +1312,9 @@ class IPFabricTransformMapTestCase(
|
|
|
1258
1312
|
# Verify ungrouped transform maps were restored
|
|
1259
1313
|
self.assertEqual(
|
|
1260
1314
|
IPFabricTransformMap.objects.filter(group__isnull=True).count(),
|
|
1261
|
-
self.
|
|
1315
|
+
self.default_maps.count(),
|
|
1262
1316
|
)
|
|
1263
|
-
for map in default_maps:
|
|
1317
|
+
for map in self.default_maps:
|
|
1264
1318
|
self.assertTrue(
|
|
1265
1319
|
IPFabricTransformMap.objects.filter(
|
|
1266
1320
|
name=map.name,
|
|
@@ -1288,140 +1342,139 @@ class IPFabricTransformMapTestCase(
|
|
|
1288
1342
|
self.assertIn(response.status_code, [302, 403])
|
|
1289
1343
|
|
|
1290
1344
|
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
#
|
|
1294
|
-
#
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
#
|
|
1299
|
-
|
|
1300
|
-
#
|
|
1301
|
-
#
|
|
1302
|
-
#
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
#
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
#
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
#
|
|
1360
|
-
#
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
#
|
|
1365
|
-
|
|
1366
|
-
#
|
|
1367
|
-
#
|
|
1368
|
-
#
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
#
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
#
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
# }
|
|
1345
|
+
class IPFabricTransformFieldTestCase(
|
|
1346
|
+
PluginPathMixin,
|
|
1347
|
+
# ViewTestCases.GetObjectViewTestCase,
|
|
1348
|
+
# ViewTestCases.GetObjectChangelogViewTestCase,
|
|
1349
|
+
ViewTestCases.CreateObjectViewTestCase,
|
|
1350
|
+
ViewTestCases.EditObjectViewTestCase,
|
|
1351
|
+
ViewTestCases.DeleteObjectViewTestCase,
|
|
1352
|
+
# ViewTestCases.ListObjectsViewTestCase,
|
|
1353
|
+
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
1354
|
+
# ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
1355
|
+
# ViewTestCases.BulkEditObjectsViewTestCase,
|
|
1356
|
+
# ViewTestCases.BulkImportObjectsViewTestCase,
|
|
1357
|
+
):
|
|
1358
|
+
model = IPFabricTransformField
|
|
1359
|
+
|
|
1360
|
+
@classmethod
|
|
1361
|
+
def setUpTestData(cls):
|
|
1362
|
+
# Create required dependencies
|
|
1363
|
+
group = IPFabricTransformMapGroup.objects.create(
|
|
1364
|
+
name="Test Group",
|
|
1365
|
+
description="Test group for transform fields",
|
|
1366
|
+
)
|
|
1367
|
+
|
|
1368
|
+
transform_map = IPFabricTransformMap.objects.create(
|
|
1369
|
+
name="Test Transform Map",
|
|
1370
|
+
source_model="devices",
|
|
1371
|
+
target_model=ContentType.objects.get(app_label="dcim", model="device"),
|
|
1372
|
+
group=group,
|
|
1373
|
+
)
|
|
1374
|
+
|
|
1375
|
+
# Create three IPFabricTransformField instances for testing
|
|
1376
|
+
fields = (
|
|
1377
|
+
IPFabricTransformField(
|
|
1378
|
+
transform_map=transform_map,
|
|
1379
|
+
source_field="hostname",
|
|
1380
|
+
target_field="name",
|
|
1381
|
+
coalesce=False,
|
|
1382
|
+
template="{{ object.hostname }}",
|
|
1383
|
+
),
|
|
1384
|
+
IPFabricTransformField(
|
|
1385
|
+
transform_map=transform_map,
|
|
1386
|
+
source_field="vendor",
|
|
1387
|
+
target_field="manufacturer",
|
|
1388
|
+
coalesce=True,
|
|
1389
|
+
template="{{ object.vendor }}",
|
|
1390
|
+
),
|
|
1391
|
+
IPFabricTransformField(
|
|
1392
|
+
transform_map=transform_map,
|
|
1393
|
+
source_field="model",
|
|
1394
|
+
target_field="device_type",
|
|
1395
|
+
coalesce=False,
|
|
1396
|
+
template="{{ object.model }}",
|
|
1397
|
+
),
|
|
1398
|
+
)
|
|
1399
|
+
for field in fields:
|
|
1400
|
+
field.save()
|
|
1401
|
+
|
|
1402
|
+
cls.form_data = {
|
|
1403
|
+
"transform_map": transform_map.pk,
|
|
1404
|
+
"source_field": "serial_number",
|
|
1405
|
+
"target_field": "serial",
|
|
1406
|
+
"coalesce": False,
|
|
1407
|
+
"template": "{{ object.serial_number }}",
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
class IPFabricRelationshipFieldTestCase(
|
|
1412
|
+
PluginPathMixin,
|
|
1413
|
+
# ViewTestCases.GetObjectViewTestCase,
|
|
1414
|
+
# ViewTestCases.GetObjectChangelogViewTestCase,
|
|
1415
|
+
ViewTestCases.CreateObjectViewTestCase,
|
|
1416
|
+
ViewTestCases.EditObjectViewTestCase,
|
|
1417
|
+
ViewTestCases.DeleteObjectViewTestCase,
|
|
1418
|
+
# ViewTestCases.ListObjectsViewTestCase,
|
|
1419
|
+
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
1420
|
+
# ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
1421
|
+
# ViewTestCases.BulkEditObjectsViewTestCase,
|
|
1422
|
+
# ViewTestCases.BulkImportObjectsViewTestCase,
|
|
1423
|
+
):
|
|
1424
|
+
model = IPFabricRelationshipField
|
|
1425
|
+
|
|
1426
|
+
@classmethod
|
|
1427
|
+
def setUpTestData(cls):
|
|
1428
|
+
# Create required dependencies
|
|
1429
|
+
group = IPFabricTransformMapGroup.objects.create(
|
|
1430
|
+
name="Test Group",
|
|
1431
|
+
description="Test group for relationship fields",
|
|
1432
|
+
)
|
|
1433
|
+
|
|
1434
|
+
device_ct = ContentType.objects.get(app_label="dcim", model="device")
|
|
1435
|
+
site_ct = ContentType.objects.get(app_label="dcim", model="site")
|
|
1436
|
+
|
|
1437
|
+
transform_map = IPFabricTransformMap.objects.create(
|
|
1438
|
+
name="Test Transform Map",
|
|
1439
|
+
source_model="devices",
|
|
1440
|
+
target_model=device_ct,
|
|
1441
|
+
group=group,
|
|
1442
|
+
)
|
|
1443
|
+
|
|
1444
|
+
# Create three IPFabricRelationshipField instances for testing
|
|
1445
|
+
fields = (
|
|
1446
|
+
IPFabricRelationshipField(
|
|
1447
|
+
transform_map=transform_map,
|
|
1448
|
+
source_model=site_ct,
|
|
1449
|
+
target_field="site",
|
|
1450
|
+
coalesce=False,
|
|
1451
|
+
template="{{ object.site_id }}",
|
|
1452
|
+
),
|
|
1453
|
+
IPFabricRelationshipField(
|
|
1454
|
+
transform_map=transform_map,
|
|
1455
|
+
source_model=device_ct,
|
|
1456
|
+
target_field="parent_device",
|
|
1457
|
+
coalesce=True,
|
|
1458
|
+
template="{{ object.parent_id }}",
|
|
1459
|
+
),
|
|
1460
|
+
IPFabricRelationshipField(
|
|
1461
|
+
transform_map=transform_map,
|
|
1462
|
+
source_model=site_ct,
|
|
1463
|
+
target_field="location",
|
|
1464
|
+
coalesce=False,
|
|
1465
|
+
template="{{ object.location_id }}",
|
|
1466
|
+
),
|
|
1467
|
+
)
|
|
1468
|
+
for field in fields:
|
|
1469
|
+
field.save()
|
|
1470
|
+
|
|
1471
|
+
cls.form_data = {
|
|
1472
|
+
"transform_map": transform_map.pk,
|
|
1473
|
+
"source_model": site_ct.pk,
|
|
1474
|
+
"target_field": "site",
|
|
1475
|
+
"coalesce": False,
|
|
1476
|
+
"template": "{{ object.site_id }}",
|
|
1477
|
+
}
|
|
1425
1478
|
|
|
1426
1479
|
|
|
1427
1480
|
class IPFabricIngestionTestCase(
|
|
@@ -1432,7 +1485,7 @@ class IPFabricIngestionTestCase(
|
|
|
1432
1485
|
# ViewTestCases.EditObjectViewTestCase,
|
|
1433
1486
|
# ViewTestCases.DeleteObjectViewTestCase,
|
|
1434
1487
|
ViewTestCases.ListObjectsViewTestCase,
|
|
1435
|
-
|
|
1488
|
+
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
1436
1489
|
# ViewTestCases.BulkRenameObjectsViewTestCase,
|
|
1437
1490
|
# ViewTestCases.BulkEditObjectsViewTestCase,
|
|
1438
1491
|
# ViewTestCases.BulkImportObjectsViewTestCase,
|