1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Enable tests for component bulk edit views

This commit is contained in:
Jeremy Stretch
2020-02-05 11:14:07 -05:00
parent 57a0cf0a33
commit 6b9fa5e76f
4 changed files with 60 additions and 17 deletions

View File

@ -726,7 +726,6 @@ class ConsoleServerPortTestCase(StandardTestCases.Views):
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -757,6 +756,12 @@ class ConsoleServerPortTestCase(StandardTestCases.Views):
"Device 1,Console Server Port 6", "Device 1,Console Server Port 6",
) )
cls.bulk_edit_data = {
'device': device.pk,
'type': ConsolePortTypeChoices.TYPE_RJ45,
'description': 'New description',
}
class PowerPortTestCase(StandardTestCases.Views): class PowerPortTestCase(StandardTestCases.Views):
model = PowerPort model = PowerPort
@ -808,7 +813,6 @@ class PowerOutletTestCase(StandardTestCases.Views):
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -847,23 +851,32 @@ class PowerOutletTestCase(StandardTestCases.Views):
"Device 1,Power Outlet 6", "Device 1,Power Outlet 6",
) )
cls.bulk_edit_data = {
'device': device.pk,
'type': PowerOutletTypeChoices.TYPE_IEC_C13,
'power_port': powerports[1].pk,
'feed_leg': PowerOutletFeedLegChoices.FEED_LEG_B,
'description': 'New description',
}
class InterfaceTestCase(StandardTestCases.Views): class InterfaceTestCase(StandardTestCases.Views):
model = Interface model = Interface
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
device = create_test_device('Device 1') device = create_test_device('Device 1')
Interface.objects.bulk_create([ interfaces = (
Interface(device=device, name='Interface 1'), Interface(device=device, name='Interface 1'),
Interface(device=device, name='Interface 2'), Interface(device=device, name='Interface 2'),
Interface(device=device, name='Interface 3'), Interface(device=device, name='Interface 3'),
]) Interface(device=device, name='LAG', type=InterfaceTypeChoices.TYPE_LAG),
)
Interface.objects.bulk_create(interfaces)
vlans = ( vlans = (
VLAN(vid=1, name='VLAN1', site=device.site), VLAN(vid=1, name='VLAN1', site=device.site),
@ -879,11 +892,11 @@ class InterfaceTestCase(StandardTestCases.Views):
'name': 'Interface X', 'name': 'Interface X',
'type': InterfaceTypeChoices.TYPE_1GE_GBIC, 'type': InterfaceTypeChoices.TYPE_1GE_GBIC,
'enabled': False, 'enabled': False,
'lag': None, 'lag': interfaces[3].pk,
'mac_address': EUI('01:02:03:04:05:06'), 'mac_address': EUI('01:02:03:04:05:06'),
'mtu': 2000, 'mtu': 2000,
'mgmt_only': True, 'mgmt_only': True,
'description': 'New description', 'description': 'A front port',
'mode': InterfaceModeChoices.MODE_TAGGED, 'mode': InterfaceModeChoices.MODE_TAGGED,
'untagged_vlan': vlans[0].pk, 'untagged_vlan': vlans[0].pk,
'tagged_vlans': [v.pk for v in vlans[1:4]], 'tagged_vlans': [v.pk for v in vlans[1:4]],
@ -901,6 +914,20 @@ class InterfaceTestCase(StandardTestCases.Views):
"Device 1,Interface 6,1000BASE-T (1GE)", "Device 1,Interface 6,1000BASE-T (1GE)",
) )
cls.bulk_edit_data = {
'device': device.pk,
'type': InterfaceTypeChoices.TYPE_1GE_GBIC,
'enabled': False,
'lag': interfaces[3].pk,
'mac_address': EUI('01:02:03:04:05:06'),
'mtu': 2000,
'mgmt_only': True,
'description': 'New description',
'mode': InterfaceModeChoices.MODE_TAGGED,
'untagged_vlan': vlans[0].pk,
'tagged_vlans': [v.pk for v in vlans[1:4]],
}
class FrontPortTestCase(StandardTestCases.Views): class FrontPortTestCase(StandardTestCases.Views):
model = FrontPort model = FrontPort
@ -910,7 +937,6 @@ class FrontPortTestCase(StandardTestCases.Views):
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -952,6 +978,11 @@ class FrontPortTestCase(StandardTestCases.Views):
"Device 1,Front Port 6,8P8C,Rear Port 6,1", "Device 1,Front Port 6,8P8C,Rear Port 6,1",
) )
cls.bulk_edit_data = {
'type': PortTypeChoices.TYPE_8P8C,
'description': 'New description',
}
class RearPortTestCase(StandardTestCases.Views): class RearPortTestCase(StandardTestCases.Views):
model = RearPort model = RearPort
@ -961,7 +992,6 @@ class RearPortTestCase(StandardTestCases.Views):
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -978,7 +1008,7 @@ class RearPortTestCase(StandardTestCases.Views):
'name': 'Rear Port X', 'name': 'Rear Port X',
'type': PortTypeChoices.TYPE_8P8C, 'type': PortTypeChoices.TYPE_8P8C,
'positions': 3, 'positions': 3,
'description': 'New description', 'description': 'A rear port',
'tags': 'Alpha,Bravo,Charlie', 'tags': 'Alpha,Bravo,Charlie',
# Extraneous model fields # Extraneous model fields
@ -992,6 +1022,11 @@ class RearPortTestCase(StandardTestCases.Views):
"Device 1,Rear Port 6,8P8C,1", "Device 1,Rear Port 6,8P8C,1",
) )
cls.bulk_edit_data = {
'type': PortTypeChoices.TYPE_8P8C,
'description': 'New description',
}
class DeviceBayTestCase(StandardTestCases.Views): class DeviceBayTestCase(StandardTestCases.Views):
model = DeviceBay model = DeviceBay

View File

@ -270,7 +270,8 @@ class StandardTestCases:
@override_settings(EXEMPT_VIEW_PERMISSIONS=[]) @override_settings(EXEMPT_VIEW_PERMISSIONS=[])
def test_bulk_edit_objects(self): def test_bulk_edit_objects(self):
pk_list = self.model.objects.values_list('pk', flat=True) # Bulk edit the first three objects only
pk_list = self.model.objects.values_list('pk', flat=True)[:3]
request = { request = {
'path': self._get_url('bulk_edit'), 'path': self._get_url('bulk_edit'),

View File

@ -202,7 +202,6 @@ class InterfaceTestCase(StandardTestCases.Views):
# TODO # TODO
test_create_object = None test_create_object = None
test_bulk_edit_objects = None
def _get_base_url(self): def _get_base_url(self):
# Interface belongs to the DCIM app, so we have to override the base URL # Interface belongs to the DCIM app, so we have to override the base URL
@ -222,9 +221,9 @@ class InterfaceTestCase(StandardTestCases.Views):
VirtualMachine.objects.bulk_create(virtualmachines) VirtualMachine.objects.bulk_create(virtualmachines)
Interface.objects.bulk_create([ Interface.objects.bulk_create([
Interface(virtual_machine=virtualmachines[0], name='Interface 1'), Interface(virtual_machine=virtualmachines[0], name='Interface 1', type=InterfaceTypeChoices.TYPE_VIRTUAL),
Interface(virtual_machine=virtualmachines[0], name='Interface 2'), Interface(virtual_machine=virtualmachines[0], name='Interface 2', type=InterfaceTypeChoices.TYPE_VIRTUAL),
Interface(virtual_machine=virtualmachines[0], name='Interface 3'), Interface(virtual_machine=virtualmachines[0], name='Interface 3', type=InterfaceTypeChoices.TYPE_VIRTUAL),
]) ])
vlans = ( vlans = (
@ -262,3 +261,13 @@ class InterfaceTestCase(StandardTestCases.Views):
"Device 1,Interface 5,1000BASE-T (1GE)", "Device 1,Interface 5,1000BASE-T (1GE)",
"Device 1,Interface 6,1000BASE-T (1GE)", "Device 1,Interface 6,1000BASE-T (1GE)",
) )
cls.bulk_edit_data = {
'virtual_machine': virtualmachines[1].pk,
'enabled': False,
'mtu': 2000,
'description': 'New description',
'mode': InterfaceModeChoices.MODE_TAGGED,
# 'untagged_vlan': vlans[0].pk,
# 'tagged_vlans': [v.pk for v in vlans[1:4]],
}

View File

@ -353,7 +353,6 @@ class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView): class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'dcim.change_interface' permission_required = 'dcim.change_interface'
queryset = Interface.objects.all() queryset = Interface.objects.all()
parent_model = VirtualMachine
table = tables.InterfaceTable table = tables.InterfaceTable
form = forms.InterfaceBulkEditForm form = forms.InterfaceBulkEditForm
@ -361,7 +360,6 @@ class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_interface' permission_required = 'dcim.delete_interface'
queryset = Interface.objects.all() queryset = Interface.objects.all()
parent_model = VirtualMachine
table = tables.InterfaceTable table = tables.InterfaceTable