From ed9ca270a7b708f7ab7b312d9f39af482f9c66c8 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 9 Jun 2020 13:24:07 -0400 Subject: [PATCH] Add missing API tests for pass-through port templates --- netbox/dcim/tests/test_api.py | 109 +++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 6c6b75c7f..39bc181fe 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -8,9 +8,9 @@ from dcim.choices import * from dcim.constants import * from dcim.models import ( Cable, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay, - DeviceBayTemplate, DeviceRole, DeviceType, FrontPort, Interface, InterfaceTemplate, Manufacturer, + DeviceBayTemplate, DeviceRole, DeviceType, FrontPort, FrontPortTemplate, Interface, InterfaceTemplate, Manufacturer, InventoryItem, Platform, PowerFeed, PowerPort, PowerPortTemplate, PowerOutlet, PowerOutletTemplate, PowerPanel, - Rack, RackGroup, RackReservation, RackRole, RearPort, Region, Site, VirtualChassis, + Rack, RackGroup, RackReservation, RackRole, RearPort, RearPortTemplate, Region, Site, VirtualChassis, ) from ipam.models import VLAN from extras.models import Graph @@ -578,6 +578,111 @@ class InterfaceTemplateTest(APIViewTestCases.APIViewTestCase): ] +class FrontPortTemplateTest(APIViewTestCases.APIViewTestCase): + model = FrontPortTemplate + brief_fields = ['id', 'name', 'url'] + + @classmethod + def setUpTestData(cls): + manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') + devicetype = DeviceType.objects.create( + manufacturer=manufacturer, model='Device Type 1', slug='device-type-1' + ) + + rear_port_templates = ( + RearPortTemplate(device_type=devicetype, name='Rear Port Template 1', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 2', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 3', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 4', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 5', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 6', type=PortTypeChoices.TYPE_8P8C), + ) + RearPortTemplate.objects.bulk_create(rear_port_templates) + + front_port_templates = ( + FrontPortTemplate( + device_type=devicetype, + name='Front Port Template 1', + type=PortTypeChoices.TYPE_8P8C, + rear_port=rear_port_templates[0] + ), + FrontPortTemplate( + device_type=devicetype, + name='Front Port Template 2', + type=PortTypeChoices.TYPE_8P8C, + rear_port=rear_port_templates[1] + ), + FrontPortTemplate( + device_type=devicetype, + name='Front Port Template 3', + type=PortTypeChoices.TYPE_8P8C, + rear_port=rear_port_templates[2] + ), + ) + FrontPortTemplate.objects.bulk_create(front_port_templates) + + cls.create_data = [ + { + 'device_type': devicetype.pk, + 'name': 'Front Port Template 4', + 'type': PortTypeChoices.TYPE_8P8C, + 'rear_port': rear_port_templates[3].pk, + 'position': 1, + }, + { + 'device_type': devicetype.pk, + 'name': 'Front Port Template 5', + 'type': PortTypeChoices.TYPE_8P8C, + 'rear_port': rear_port_templates[4].pk, + 'position': 1, + }, + { + 'device_type': devicetype.pk, + 'name': 'Front Port Template 6', + 'type': PortTypeChoices.TYPE_8P8C, + 'rear_port': rear_port_templates[5].pk, + 'position': 1, + }, + ] + + +class RearPortTemplateTest(APIViewTestCases.APIViewTestCase): + model = RearPortTemplate + brief_fields = ['id', 'name', 'url'] + + @classmethod + def setUpTestData(cls): + manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') + devicetype = DeviceType.objects.create( + manufacturer=manufacturer, model='Device Type 1', slug='device-type-1' + ) + + rear_port_templates = ( + RearPortTemplate(device_type=devicetype, name='Rear Port Template 1', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 2', type=PortTypeChoices.TYPE_8P8C), + RearPortTemplate(device_type=devicetype, name='Rear Port Template 3', type=PortTypeChoices.TYPE_8P8C), + ) + RearPortTemplate.objects.bulk_create(rear_port_templates) + + cls.create_data = [ + { + 'device_type': devicetype.pk, + 'name': 'Rear Port Template 4', + 'type': PortTypeChoices.TYPE_8P8C, + }, + { + 'device_type': devicetype.pk, + 'name': 'Rear Port Template 5', + 'type': PortTypeChoices.TYPE_8P8C, + }, + { + 'device_type': devicetype.pk, + 'name': 'Rear Port Template 6', + 'type': PortTypeChoices.TYPE_8P8C, + }, + ] + + class DeviceBayTemplateTest(APIViewTestCases.APIViewTestCase): model = DeviceBayTemplate brief_fields = ['id', 'name', 'url']