mirror of
https://github.com/netbox-community/netbox.git
synced 2026-04-28 11:47:35 +02:00
Closes #10371: Add operational status field for modules
This commit is contained in:
@@ -1271,6 +1271,7 @@ class ModuleTest(APIViewTestCases.APIViewTestCase):
|
||||
'device': device.pk,
|
||||
'module_bay': module_bays[3].pk,
|
||||
'module_type': module_types[0].pk,
|
||||
'status': ModuleStatusChoices.STATUS_ACTIVE,
|
||||
'serial': 'ABC123',
|
||||
'asset_tag': 'Foo1',
|
||||
},
|
||||
@@ -1278,6 +1279,7 @@ class ModuleTest(APIViewTestCases.APIViewTestCase):
|
||||
'device': device.pk,
|
||||
'module_bay': module_bays[4].pk,
|
||||
'module_type': module_types[1].pk,
|
||||
'status': ModuleStatusChoices.STATUS_ACTIVE,
|
||||
'serial': 'DEF456',
|
||||
'asset_tag': 'Foo2',
|
||||
},
|
||||
@@ -1285,6 +1287,7 @@ class ModuleTest(APIViewTestCases.APIViewTestCase):
|
||||
'device': device.pk,
|
||||
'module_bay': module_bays[5].pk,
|
||||
'module_type': module_types[2].pk,
|
||||
'status': ModuleStatusChoices.STATUS_ACTIVE,
|
||||
'serial': 'GHI789',
|
||||
'asset_tag': 'Foo3',
|
||||
},
|
||||
|
||||
@@ -1876,15 +1876,15 @@ class ModuleTestCase(TestCase, ChangeLoggedFilterSetTests):
|
||||
ModuleBay.objects.bulk_create(module_bays)
|
||||
|
||||
modules = (
|
||||
Module(device=devices[0], module_bay=module_bays[0], module_type=module_types[0], serial='A', asset_tag='A'),
|
||||
Module(device=devices[0], module_bay=module_bays[1], module_type=module_types[1], serial='B', asset_tag='B'),
|
||||
Module(device=devices[0], module_bay=module_bays[2], module_type=module_types[2], serial='C', asset_tag='C'),
|
||||
Module(device=devices[1], module_bay=module_bays[3], module_type=module_types[0], serial='D', asset_tag='D'),
|
||||
Module(device=devices[1], module_bay=module_bays[4], module_type=module_types[1], serial='E', asset_tag='E'),
|
||||
Module(device=devices[1], module_bay=module_bays[5], module_type=module_types[2], serial='F', asset_tag='F'),
|
||||
Module(device=devices[2], module_bay=module_bays[6], module_type=module_types[0], serial='G', asset_tag='G'),
|
||||
Module(device=devices[2], module_bay=module_bays[7], module_type=module_types[1], serial='H', asset_tag='H'),
|
||||
Module(device=devices[2], module_bay=module_bays[8], module_type=module_types[2], serial='I', asset_tag='I'),
|
||||
Module(device=devices[0], module_bay=module_bays[0], module_type=module_types[0], status=ModuleStatusChoices.STATUS_ACTIVE, serial='A', asset_tag='A'),
|
||||
Module(device=devices[0], module_bay=module_bays[1], module_type=module_types[1], status=ModuleStatusChoices.STATUS_ACTIVE, serial='B', asset_tag='B'),
|
||||
Module(device=devices[0], module_bay=module_bays[2], module_type=module_types[2], status=ModuleStatusChoices.STATUS_ACTIVE, serial='C', asset_tag='C'),
|
||||
Module(device=devices[1], module_bay=module_bays[3], module_type=module_types[0], status=ModuleStatusChoices.STATUS_ACTIVE, serial='D', asset_tag='D'),
|
||||
Module(device=devices[1], module_bay=module_bays[4], module_type=module_types[1], status=ModuleStatusChoices.STATUS_ACTIVE, serial='E', asset_tag='E'),
|
||||
Module(device=devices[1], module_bay=module_bays[5], module_type=module_types[2], status=ModuleStatusChoices.STATUS_ACTIVE, serial='F', asset_tag='F'),
|
||||
Module(device=devices[2], module_bay=module_bays[6], module_type=module_types[0], status=ModuleStatusChoices.STATUS_ACTIVE, serial='G', asset_tag='G'),
|
||||
Module(device=devices[2], module_bay=module_bays[7], module_type=module_types[1], status=ModuleStatusChoices.STATUS_PLANNED, serial='H', asset_tag='H'),
|
||||
Module(device=devices[2], module_bay=module_bays[8], module_type=module_types[2], status=ModuleStatusChoices.STATUS_FAILED, serial='I', asset_tag='I'),
|
||||
)
|
||||
Module.objects.bulk_create(modules)
|
||||
|
||||
@@ -1912,6 +1912,10 @@ class ModuleTestCase(TestCase, ChangeLoggedFilterSetTests):
|
||||
params = {'device_id': [device_types[0].pk, device_types[1].pk]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
|
||||
|
||||
def test_status(self):
|
||||
params = {'status': [ModuleStatusChoices.STATUS_PLANNED, ModuleStatusChoices.STATUS_FAILED]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
def test_serial(self):
|
||||
params = {'serial': ['A', 'B']}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
@@ -1887,26 +1887,28 @@ class ModuleTestCase(
|
||||
'device': devices[0].pk,
|
||||
'module_bay': module_bays[3].pk,
|
||||
'module_type': module_types[0].pk,
|
||||
'status': ModuleStatusChoices.STATUS_ACTIVE,
|
||||
'serial': 'A',
|
||||
'tags': [t.pk for t in tags],
|
||||
}
|
||||
|
||||
cls.bulk_edit_data = {
|
||||
'module_type': module_types[3].pk,
|
||||
'status': ModuleStatusChoices.STATUS_PLANNED,
|
||||
}
|
||||
|
||||
cls.csv_data = (
|
||||
"device,module_bay,module_type,serial,asset_tag",
|
||||
"Device 2,Module Bay 1,Module Type 1,A,A",
|
||||
"Device 2,Module Bay 2,Module Type 2,B,B",
|
||||
"Device 2,Module Bay 3,Module Type 3,C,C",
|
||||
"device,module_bay,module_type,status,serial,asset_tag",
|
||||
"Device 2,Module Bay 1,Module Type 1,active,A,A",
|
||||
"Device 2,Module Bay 2,Module Type 2,planned,B,B",
|
||||
"Device 2,Module Bay 3,Module Type 3,failed,C,C",
|
||||
)
|
||||
|
||||
cls.csv_update_data = (
|
||||
"id,serial",
|
||||
f"{modules[0].pk},Serial 2",
|
||||
f"{modules[1].pk},Serial 3",
|
||||
f"{modules[2].pk},Serial 1",
|
||||
"id,status,serial",
|
||||
f"{modules[0].pk},offline,Serial 2",
|
||||
f"{modules[1].pk},offline,Serial 3",
|
||||
f"{modules[2].pk},offline,Serial 1",
|
||||
)
|
||||
|
||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
||||
|
||||
Reference in New Issue
Block a user