From 711702649276f4d54cf3b706495205be1963923e Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Mon, 18 May 2026 16:34:07 -0500 Subject: [PATCH] Convert circuits app tests to use model_bakery for fixture creation (#22087) Replace manual object creation in all circuits test files with model_bakery's baker.make() calls. This reduces test setup boilerplate by ~500 lines while maintaining identical test coverage (708 tests). Add MPTT_ALLOW_TESTING_GENERATORS setting to allow model_bakery to create objects with MPTT foreign key chains in the test environment. --- netbox/circuits/tests/test_api.py | 360 +++++------------ netbox/circuits/tests/test_filtersets.py | 467 +++++++++-------------- netbox/circuits/tests/test_models.py | 19 +- netbox/circuits/tests/test_signals.py | 23 +- netbox/circuits/tests/test_views.py | 440 +++++++-------------- netbox/netbox/configuration_testing.py | 2 + netbox/netbox/settings.py | 1 + 7 files changed, 413 insertions(+), 899 deletions(-) diff --git a/netbox/circuits/tests/test_api.py b/netbox/circuits/tests/test_api.py index 81d609847..168dbf6d3 100644 --- a/netbox/circuits/tests/test_api.py +++ b/netbox/circuits/tests/test_api.py @@ -1,10 +1,10 @@ from django.urls import reverse +from model_bakery import baker from circuits.choices import * from circuits.models import * from dcim.choices import InterfaceTypeChoices -from dcim.models import Device, DeviceRole, DeviceType, Interface, Manufacturer, Site -from ipam.models import ASN, RIR +from dcim.models import Interface from utilities.testing import APITestCase, APIViewTestCases @@ -27,18 +27,10 @@ class ProviderTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - rir = RIR.objects.create(name='RFC 6996', is_private=True) - asns = [ - ASN(asn=65000 + i, rir=rir) for i in range(8) - ] - ASN.objects.bulk_create(asns) + rir = baker.make('ipam.RIR', is_private=True) + asns = [baker.make('ipam.ASN', asn=65000 + i, rir=rir) for i in range(8)] - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + baker.make('circuits.Provider', _quantity=3) cls.create_data = [ { @@ -82,13 +74,7 @@ class CircuitTypeTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - - circuit_types = ( - CircuitType(name='Circuit Type 1', slug='circuit-type-1'), - CircuitType(name='Circuit Type 2', slug='circuit-type-2'), - CircuitType(name='Circuit Type 3', slug='circuit-type-3'), - ) - CircuitType.objects.bulk_create(circuit_types) + baker.make('circuits.CircuitType', _quantity=3) class CircuitTestCase(APIViewTestCases.APIViewTestCase): @@ -102,36 +88,22 @@ class CircuitTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=2) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='1234'), - ProviderAccount(name='Provider Account 2', provider=providers[1], account='2345'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) + provider_accounts = [ + baker.make('circuits.ProviderAccount', provider=providers[0]), + baker.make('circuits.ProviderAccount', provider=providers[1]), + ] - circuit_types = ( - CircuitType(name='Circuit Type 1', slug='circuit-type-1'), - CircuitType(name='Circuit Type 2', slug='circuit-type-2'), - ) - CircuitType.objects.bulk_create(circuit_types) + circuit_types = baker.make('circuits.CircuitType', _quantity=2) - circuits = ( - Circuit( - cid='Circuit 1', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0] - ), - Circuit( - cid='Circuit 2', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0] - ), - Circuit( - cid='Circuit 3', provider=providers[0], provider_account=provider_accounts[0], type=circuit_types[0] - ), + baker.make( + 'circuits.Circuit', + provider=providers[0], + provider_account=provider_accounts[0], + type=circuit_types[0], + _quantity=3, ) - Circuit.objects.bulk_create(circuits) cls.create_data = [ { @@ -165,27 +137,14 @@ class CircuitTerminationTestCase(APIViewTestCases.APIViewTestCase): SIDE_A = CircuitTerminationSideChoices.SIDE_A SIDE_Z = CircuitTerminationSideChoices.SIDE_Z - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + provider = baker.make('circuits.Provider') + circuit_type = baker.make('circuits.CircuitType') - sites = ( - Site(name='Site 1', slug='site-1'), - Site(name='Site 2', slug='site-2'), - ) - Site.objects.bulk_create(sites) + sites = baker.make('dcim.Site', _quantity=2) - provider_networks = ( - ProviderNetwork(provider=provider, name='Provider Network 1'), - ProviderNetwork(provider=provider, name='Provider Network 2'), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + provider_networks = baker.make('circuits.ProviderNetwork', provider=provider, _quantity=2) - circuits = ( - Circuit(cid='Circuit 1', provider=provider, type=circuit_type), - Circuit(cid='Circuit 2', provider=provider, type=circuit_type), - Circuit(cid='Circuit 3', provider=provider, type=circuit_type), - ) - Circuit.objects.bulk_create(circuits) + circuits = baker.make('circuits.Circuit', provider=provider, type=circuit_type, _quantity=3) circuit_terminations = ( CircuitTermination(circuit=circuits[0], term_side=SIDE_A, termination=sites[0]), @@ -226,12 +185,7 @@ class CircuitGroupTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - circuit_groups = ( - CircuitGroup(name="Circuit Group 1", slug='circuit-group-1'), - CircuitGroup(name="Circuit Group 2", slug='circuit-group-2'), - CircuitGroup(name="Circuit Group 3", slug='circuit-group-3'), - ) - CircuitGroup.objects.bulk_create(circuit_groups) + baker.make('circuits.CircuitGroup', _quantity=3) cls.create_data = [ { @@ -256,18 +210,9 @@ class ProviderAccountTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=2) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='1234'), - ProviderAccount(name='Provider Account 2', provider=providers[0], account='2345'), - ProviderAccount(name='Provider Account 3', provider=providers[0], account='3456'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) + baker.make('circuits.ProviderAccount', provider=providers[0], _quantity=3) cls.create_data = [ { @@ -304,28 +249,12 @@ class CircuitGroupAssignmentTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - circuit_groups = ( - CircuitGroup(name='Circuit Group 1', slug='circuit-group-1'), - CircuitGroup(name='Circuit Group 2', slug='circuit-group-2'), - CircuitGroup(name='Circuit Group 3', slug='circuit-group-3'), - CircuitGroup(name='Circuit Group 4', slug='circuit-group-4'), - CircuitGroup(name='Circuit Group 5', slug='circuit-group-5'), - CircuitGroup(name='Circuit Group 6', slug='circuit-group-6'), - ) - CircuitGroup.objects.bulk_create(circuit_groups) + circuit_groups = baker.make('circuits.CircuitGroup', _quantity=6) - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - circuittype = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + provider = baker.make('circuits.Provider') + circuittype = baker.make('circuits.CircuitType') - circuits = ( - Circuit(cid='Circuit 1', provider=provider, type=circuittype), - Circuit(cid='Circuit 2', provider=provider, type=circuittype), - Circuit(cid='Circuit 3', provider=provider, type=circuittype), - Circuit(cid='Circuit 4', provider=provider, type=circuittype), - Circuit(cid='Circuit 5', provider=provider, type=circuittype), - Circuit(cid='Circuit 6', provider=provider, type=circuittype), - ) - Circuit.objects.bulk_create(circuits) + circuits = baker.make('circuits.Circuit', provider=provider, type=circuittype, _quantity=6) assignments = ( CircuitGroupAssignment( @@ -375,18 +304,9 @@ class ProviderNetworkTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=2) - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0]), - ProviderNetwork(name='Provider Network 2', provider=providers[0]), - ProviderNetwork(name='Provider Network 3', provider=providers[0]), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + baker.make('circuits.ProviderNetwork', provider=providers[0], _quantity=3) cls.create_data = [ { @@ -432,13 +352,7 @@ class VirtualCircuitTypeTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - - virtual_circuit_types = ( - VirtualCircuitType(name='Virtual Circuit Type 1', slug='virtual-circuit-type-1'), - VirtualCircuitType(name='Virtual Circuit Type 2', slug='virtual-circuit-type-2'), - VirtualCircuitType(name='Virtual Circuit Type 3', slug='virtual-circuit-type-3'), - ) - VirtualCircuitType.objects.bulk_create(virtual_circuit_types) + baker.make('circuits.VirtualCircuitType', _quantity=3) class VirtualCircuitTestCase(APIViewTestCases.APIViewTestCase): @@ -450,35 +364,18 @@ class VirtualCircuitTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - provider_network = ProviderNetwork.objects.create(provider=provider, name='Provider Network 1') - provider_account = ProviderAccount.objects.create(provider=provider, account='Provider Account 1') - virtual_circuit_type = VirtualCircuitType.objects.create( - name='Virtual Circuit Type 1', - slug='virtual-circuit-type-1' - ) + provider = baker.make('circuits.Provider') + provider_network = baker.make('circuits.ProviderNetwork', provider=provider) + provider_account = baker.make('circuits.ProviderAccount', provider=provider) + virtual_circuit_type = baker.make('circuits.VirtualCircuitType') - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - type=virtual_circuit_type, - cid='Virtual Circuit 1' - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - type=virtual_circuit_type, - cid='Virtual Circuit 2' - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - type=virtual_circuit_type, - cid='Virtual Circuit 3' - ), + baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_network, + provider_account=provider_account, + type=virtual_circuit_type, + _quantity=3, ) - VirtualCircuit.objects.bulk_create(virtual_circuits) cls.create_data = [ { @@ -514,129 +411,58 @@ class VirtualCircuitTerminationTestCase(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): - manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1') - device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1') - device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1') - site = Site.objects.create(name='Site 1', slug='site-1') + site = baker.make('dcim.Site') + device_type = baker.make('dcim.DeviceType') + device_role = baker.make('dcim.DeviceRole') - devices = ( - Device(site=site, name='hub', device_type=device_type, role=device_role), - Device(site=site, name='spoke1', device_type=device_type, role=device_role), - Device(site=site, name='spoke2', device_type=device_type, role=device_role), - Device(site=site, name='spoke3', device_type=device_type, role=device_role), + devices = [ + baker.make('dcim.Device', site=site, device_type=device_type, role=device_role, name=name) + for name in ('hub', 'spoke1', 'spoke2', 'spoke3') + ] + + physical_interfaces = [] + for device in devices: + physical_interfaces.append( + Interface.objects.create(device=device, name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED) + ) + + virtual_interfaces = [] + # Point-to-point VCs + for i, (device, parent) in enumerate(zip(devices, physical_interfaces)): + count = 3 if i == 0 else 1 + for j in range(count): + virtual_interfaces.append( + Interface.objects.create( + device=device, + name=f'eth0.{j + 1}', + parent=parent, + type=InterfaceTypeChoices.TYPE_VIRTUAL, + ) + ) + + # Hub and spoke VCs + for device in devices: + virtual_interfaces.append( + Interface.objects.create( + device=device, + name='eth0.9', + parent=physical_interfaces[0], + type=InterfaceTypeChoices.TYPE_VIRTUAL, + ) + ) + + provider = baker.make('circuits.Provider') + provider_network = baker.make('circuits.ProviderNetwork', provider=provider) + provider_account = baker.make('circuits.ProviderAccount', provider=provider) + virtual_circuit_type = baker.make('circuits.VirtualCircuitType') + + virtual_circuits = baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_network, + provider_account=provider_account, + type=virtual_circuit_type, + _quantity=4, ) - Device.objects.bulk_create(devices) - - physical_interfaces = ( - Interface(device=devices[0], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[1], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[2], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[3], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - ) - Interface.objects.bulk_create(physical_interfaces) - - virtual_interfaces = ( - # Point-to-point VCs - Interface( - device=devices[0], - name='eth0.1', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[0], - name='eth0.2', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[0], - name='eth0.3', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[1], - name='eth0.1', - parent=physical_interfaces[1], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[2], - name='eth0.1', - parent=physical_interfaces[2], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[3], - name='eth0.1', - parent=physical_interfaces[3], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - - # Hub and spoke VCs - Interface( - device=devices[0], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[1], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[2], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[3], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - ) - Interface.objects.bulk_create(virtual_interfaces) - - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - provider_network = ProviderNetwork.objects.create(provider=provider, name='Provider Network 1') - provider_account = ProviderAccount.objects.create(provider=provider, account='Provider Account 1') - virtual_circuit_type = VirtualCircuitType.objects.create( - name='Virtual Circuit Type 1', - slug='virtual-circuit-type-1' - ) - - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 1', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 2', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 3', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 4', - type=virtual_circuit_type - ), - ) - VirtualCircuit.objects.bulk_create(virtual_circuits) virtual_circuit_terminations = ( VirtualCircuitTermination( diff --git a/netbox/circuits/tests/test_filtersets.py b/netbox/circuits/tests/test_filtersets.py index 92111d4c4..34c17676c 100644 --- a/netbox/circuits/tests/test_filtersets.py +++ b/netbox/circuits/tests/test_filtersets.py @@ -1,4 +1,5 @@ from django.test import TestCase +from model_bakery import baker from circuits.choices import * from circuits.filtersets import * @@ -6,17 +7,13 @@ from circuits.models import * from dcim.choices import InterfaceTypeChoices, LocationStatusChoices from dcim.models import ( Cable, - Device, - DeviceRole, - DeviceType, Interface, Location, - Manufacturer, Region, Site, SiteGroup, ) -from ipam.models import ASN, RIR +from ipam.models import ASN from netbox.choices import DistanceUnitChoices from tenancy.models import Tenant, TenantGroup from utilities.testing import ChangeLoggedFilterSetTests @@ -29,26 +26,24 @@ class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - rir = RIR.objects.create(name='RFC 6996', is_private=True) - asns = ( - ASN(asn=64512, rir=rir), - ASN(asn=64513, rir=rir), - ASN(asn=64514, rir=rir), - ) - ASN.objects.bulk_create(asns) + rir = baker.make('ipam.RIR', is_private=True) + asns = [ + baker.make('ipam.ASN', asn=64512 + i, rir=rir) + for i in range(3) + ] providers = ( - Provider(name='Provider 1', slug='provider-1', description='foobar1'), - Provider(name='Provider 2', slug='provider-2', description='foobar2'), - Provider(name='Provider 3', slug='provider-3'), - Provider(name='Provider 4', slug='provider-4'), - Provider(name='Provider 5', slug='provider-5'), + baker.make('circuits.Provider', name='Provider 1', slug='provider-1', description='foobar1'), + baker.make('circuits.Provider', name='Provider 2', slug='provider-2', description='foobar2'), + baker.make('circuits.Provider', name='Provider 3', slug='provider-3'), + baker.make('circuits.Provider', name='Provider 4', slug='provider-4'), + baker.make('circuits.Provider', name='Provider 5', slug='provider-5'), ) - Provider.objects.bulk_create(providers) providers[0].asns.set([asns[0]]) providers[1].asns.set([asns[1]]) providers[2].asns.set([asns[2]]) + # MPTT models: use .save() directly regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), @@ -65,22 +60,16 @@ class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests): site_group.save() sites = ( - Site(name='Test Site 1', slug='test-site-1', region=regions[0], group=site_groups[0]), - Site(name='Test Site 2', slug='test-site-2', region=regions[1], group=site_groups[1]), + baker.make('dcim.Site', name='Test Site 1', slug='test-site-1', region=regions[0], group=site_groups[0]), + baker.make('dcim.Site', name='Test Site 2', slug='test-site-2', region=regions[1], group=site_groups[1]), ) - Site.objects.bulk_create(sites) - circuit_types = ( - CircuitType(name='Test Circuit Type 1', slug='test-circuit-type-1'), - CircuitType(name='Test Circuit Type 2', slug='test-circuit-type-2'), - ) - CircuitType.objects.bulk_create(circuit_types) + circuit_types = baker.make('circuits.CircuitType', _quantity=2) circuits = ( - Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 1'), - Circuit(provider=providers[1], type=circuit_types[1], cid='Circuit 2'), + baker.make('circuits.Circuit', provider=providers[0], type=circuit_types[0], cid='Circuit 1'), + baker.make('circuits.Circuit', provider=providers[1], type=circuit_types[1], cid='Circuit 2'), ) - Circuit.objects.bulk_create(circuits) circuit_terminations = ( CircuitTermination(circuit=circuits[0], termination=sites[0], term_side='A'), @@ -141,11 +130,9 @@ class CircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - CircuitType.objects.bulk_create(( - CircuitType(name='Circuit Type 1', slug='circuit-type-1', description='foobar1'), - CircuitType(name='Circuit Type 2', slug='circuit-type-2', description='foobar2'), - CircuitType(name='Circuit Type 3', slug='circuit-type-3'), - )) + baker.make('circuits.CircuitType', name='Circuit Type 1', slug='circuit-type-1', description='foobar1') + baker.make('circuits.CircuitType', name='Circuit Type 2', slug='circuit-type-2', description='foobar2') + baker.make('circuits.CircuitType', name='Circuit Type 3', slug='circuit-type-3') def test_q(self): params = {'q': 'foobar1'} @@ -171,6 +158,7 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): + # MPTT models: use .save() directly regions = ( Region(name='Test Region 1', slug='test-region-1'), Region(name='Test Region 2', slug='test-region-2'), @@ -188,12 +176,12 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): site_group.save() sites = ( - Site(name='Test Site 1', slug='test-site-1', region=regions[0], group=site_groups[0]), - Site(name='Test Site 2', slug='test-site-2', region=regions[1], group=site_groups[1]), - Site(name='Test Site 3', slug='test-site-3', region=regions[2], group=site_groups[2]), + baker.make('dcim.Site', name='Test Site 1', slug='test-site-1', region=regions[0], group=site_groups[0]), + baker.make('dcim.Site', name='Test Site 2', slug='test-site-2', region=regions[1], group=site_groups[1]), + baker.make('dcim.Site', name='Test Site 3', slug='test-site-3', region=regions[2], group=site_groups[2]), ) - Site.objects.bulk_create(sites) + # MPTT models: use .save() directly tenant_groups = ( TenantGroup(name='Tenant group 1', slug='tenant-group-1'), TenantGroup(name='Tenant group 2', slug='tenant-group-2'), @@ -203,38 +191,22 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): tenantgroup.save() tenants = ( - Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), - Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), - Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), + baker.make('tenancy.Tenant', name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), + baker.make('tenancy.Tenant', name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), + baker.make('tenancy.Tenant', name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), ) - Tenant.objects.bulk_create(tenants) - circuit_types = ( - CircuitType(name='Test Circuit Type 1', slug='test-circuit-type-1'), - CircuitType(name='Test Circuit Type 2', slug='test-circuit-type-2'), - ) - CircuitType.objects.bulk_create(circuit_types) + circuit_types = baker.make('circuits.CircuitType', _quantity=2) - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=3) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='A'), - ProviderAccount(name='Provider Account 2', provider=providers[1], account='B'), - ProviderAccount(name='Provider Account 3', provider=providers[2], account='C'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) + provider_accounts = [ + baker.make('circuits.ProviderAccount', provider=providers[0]), + baker.make('circuits.ProviderAccount', provider=providers[1]), + baker.make('circuits.ProviderAccount', provider=providers[2]), + ] - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[1]), - ProviderNetwork(name='Provider Network 2', provider=providers[1]), - ProviderNetwork(name='Provider Network 3', provider=providers[1]), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + provider_networks = baker.make('circuits.ProviderNetwork', provider=providers[1], _quantity=3) locations = ( Location.objects.create( @@ -447,42 +419,31 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - sites = ( - Site(name='Site 1', slug='site-1'), - Site(name='Site 2', slug='site-2'), - Site(name='Site 3', slug='site-3'), - ) - Site.objects.bulk_create(sites) + sites = baker.make('dcim.Site', _quantity=3) - circuit_types = ( - CircuitType(name='Circuit Type 1', slug='circuit-type-1'), - ) - CircuitType.objects.bulk_create(circuit_types) + circuit_type = baker.make('circuits.CircuitType') providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), + baker.make('circuits.Provider', name='Provider 1', slug='provider-1'), + baker.make('circuits.Provider', name='Provider 2', slug='provider-2'), + baker.make('circuits.Provider', name='Provider 3', slug='provider-3'), ) - Provider.objects.bulk_create(providers) provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0]), - ProviderNetwork(name='Provider Network 2', provider=providers[1]), - ProviderNetwork(name='Provider Network 3', provider=providers[2]), + baker.make('circuits.ProviderNetwork', name='Provider Network 1', provider=providers[0]), + baker.make('circuits.ProviderNetwork', name='Provider Network 2', provider=providers[1]), + baker.make('circuits.ProviderNetwork', name='Provider Network 3', provider=providers[2]), ) - ProviderNetwork.objects.bulk_create(provider_networks) - circuits = ( - Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 1'), - Circuit(provider=providers[1], type=circuit_types[0], cid='Circuit 2'), - Circuit(provider=providers[2], type=circuit_types[0], cid='Circuit 3'), - Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 4'), - Circuit(provider=providers[1], type=circuit_types[0], cid='Circuit 5'), - Circuit(provider=providers[2], type=circuit_types[0], cid='Circuit 6'), - Circuit(provider=providers[2], type=circuit_types[0], cid='Circuit 7'), - ) - Circuit.objects.bulk_create(circuits) + circuits = [ + baker.make('circuits.Circuit', provider=providers[0], type=circuit_type, cid='Circuit 1'), + baker.make('circuits.Circuit', provider=providers[1], type=circuit_type, cid='Circuit 2'), + baker.make('circuits.Circuit', provider=providers[2], type=circuit_type, cid='Circuit 3'), + baker.make('circuits.Circuit', provider=providers[0], type=circuit_type, cid='Circuit 4'), + baker.make('circuits.Circuit', provider=providers[1], type=circuit_type, cid='Circuit 5'), + baker.make('circuits.Circuit', provider=providers[2], type=circuit_type, cid='Circuit 6'), + baker.make('circuits.Circuit', provider=providers[2], type=circuit_type, cid='Circuit 7'), + ] circuit_terminations = ( CircuitTermination( @@ -614,6 +575,7 @@ class CircuitGroupTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): + # MPTT models: use .save() directly tenant_groups = ( TenantGroup(name='Tenant group 1', slug='tenant-group-1'), TenantGroup(name='Tenant group 2', slug='tenant-group-2'), @@ -623,17 +585,23 @@ class CircuitGroupTestCase(TestCase, ChangeLoggedFilterSetTests): tenantgroup.save() tenants = ( - Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), - Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), - Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), + baker.make('tenancy.Tenant', name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), + baker.make('tenancy.Tenant', name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), + baker.make('tenancy.Tenant', name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), ) - Tenant.objects.bulk_create(tenants) - CircuitGroup.objects.bulk_create(( - CircuitGroup(name='Circuit Group 1', slug='circuit-group-1', description='foobar1', tenant=tenants[0]), - CircuitGroup(name='Circuit Group 2', slug='circuit-group-2', description='foobar2', tenant=tenants[1]), - CircuitGroup(name='Circuit Group 3', slug='circuit-group-3', tenant=tenants[1]), - )) + baker.make( + 'circuits.CircuitGroup', + name='Circuit Group 1', slug='circuit-group-1', description='foobar1', tenant=tenants[0], + ) + baker.make( + 'circuits.CircuitGroup', + name='Circuit Group 2', slug='circuit-group-2', description='foobar2', tenant=tenants[1], + ) + baker.make( + 'circuits.CircuitGroup', + name='Circuit Group 3', slug='circuit-group-3', tenant=tenants[1], + ) def test_q(self): params = {'q': 'foobar1'} @@ -673,56 +641,31 @@ class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - circuit_groups = ( - CircuitGroup(name='Circuit Group 1', slug='circuit-group-1'), - CircuitGroup(name='Circuit Group 2', slug='circuit-group-2'), - CircuitGroup(name='Circuit Group 3', slug='circuit-group-3'), - ) - CircuitGroup.objects.bulk_create(circuit_groups) + circuit_groups = baker.make('circuits.CircuitGroup', _quantity=3) - providers = Provider.objects.bulk_create(( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - )) - circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + providers = baker.make('circuits.Provider', _quantity=3) + circuit_type = baker.make('circuits.CircuitType') - circuits = ( - Circuit(cid='Circuit 1', provider=providers[0], type=circuit_type), - Circuit(cid='Circuit 2', provider=providers[1], type=circuit_type), - Circuit(cid='Circuit 3', provider=providers[2], type=circuit_type), - ) - Circuit.objects.bulk_create(circuits) + circuits = [ + baker.make('circuits.Circuit', cid=f'Circuit {i + 1}', provider=providers[i], type=circuit_type) + for i in range(3) + ] - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0]), - ProviderNetwork(name='Provider Network 2', provider=providers[1]), - ProviderNetwork(name='Provider Network 3', provider=providers[2]), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + provider_networks = [ + baker.make('circuits.ProviderNetwork', provider=providers[i]) + for i in range(3) + ] - virtual_circuit_type = VirtualCircuitType.objects.create( - name='Virtual Circuit Type 1', - slug='virtual-circuit-type-1' - ) - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_networks[0], - cid='Virtual Circuit 1', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_networks[1], - cid='Virtual Circuit 2', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_networks[2], - cid='Virtual Circuit 3', - type=virtual_circuit_type - ), - ) - VirtualCircuit.objects.bulk_create(virtual_circuits) + virtual_circuit_type = baker.make('circuits.VirtualCircuitType') + virtual_circuits = [ + baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_networks[i], + cid=f'Virtual Circuit {i + 1}', + type=virtual_circuit_type, + ) + for i in range(3) + ] assignments = ( CircuitGroupAssignment( @@ -794,19 +737,11 @@ class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=3) - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0], description='foobar1'), - ProviderNetwork(name='Provider Network 2', provider=providers[1], description='foobar2'), - ProviderNetwork(name='Provider Network 3', provider=providers[2]), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + baker.make('circuits.ProviderNetwork', name='Provider Network 1', provider=providers[0], description='foobar1') + baker.make('circuits.ProviderNetwork', name='Provider Network 2', provider=providers[1], description='foobar2') + baker.make('circuits.ProviderNetwork', name='Provider Network 3', provider=providers[2]) def test_q(self): params = {'q': 'foobar1'} @@ -835,19 +770,20 @@ class ProviderAccountTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=3) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], description='foobar1', account='1234'), - ProviderAccount(name='Provider Account 2', provider=providers[1], description='foobar2', account='2345'), - ProviderAccount(name='Provider Account 3', provider=providers[2], account='3456'), + baker.make( + 'circuits.ProviderAccount', + name='Provider Account 1', provider=providers[0], description='foobar1', account='1234', + ) + baker.make( + 'circuits.ProviderAccount', + name='Provider Account 2', provider=providers[1], description='foobar2', account='2345', + ) + baker.make( + 'circuits.ProviderAccount', + name='Provider Account 3', provider=providers[2], account='3456', ) - ProviderAccount.objects.bulk_create(provider_accounts) def test_q(self): params = {'q': 'foobar1'} @@ -880,11 +816,18 @@ class VirtualCircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - VirtualCircuitType.objects.bulk_create(( - VirtualCircuitType(name='Virtual Circuit Type 1', slug='virtual-circuit-type-1', description='foobar1'), - VirtualCircuitType(name='Virtual Circuit Type 2', slug='virtual-circuit-type-2', description='foobar2'), - VirtualCircuitType(name='Virtual Circuit Type 3', slug='virtual-circuit-type-3'), - )) + baker.make( + 'circuits.VirtualCircuitType', + name='Virtual Circuit Type 1', slug='virtual-circuit-type-1', description='foobar1', + ) + baker.make( + 'circuits.VirtualCircuitType', + name='Virtual Circuit Type 2', slug='virtual-circuit-type-2', description='foobar2', + ) + baker.make( + 'circuits.VirtualCircuitType', + name='Virtual Circuit Type 3', slug='virtual-circuit-type-3', + ) def test_q(self): params = {'q': 'foobar1'} @@ -910,6 +853,7 @@ class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): + # MPTT models: use .save() directly tenant_groups = ( TenantGroup(name='Tenant group 1', slug='tenant-group-1'), TenantGroup(name='Tenant group 2', slug='tenant-group-2'), @@ -919,41 +863,26 @@ class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTests): tenantgroup.save() tenants = ( - Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), - Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), - Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), + baker.make('tenancy.Tenant', name='Tenant 1', slug='tenant-1', group=tenant_groups[0]), + baker.make('tenancy.Tenant', name='Tenant 2', slug='tenant-2', group=tenant_groups[1]), + baker.make('tenancy.Tenant', name='Tenant 3', slug='tenant-3', group=tenant_groups[2]), ) - Tenant.objects.bulk_create(tenants) - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=3) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='A'), - ProviderAccount(name='Provider Account 2', provider=providers[1], account='B'), - ProviderAccount(name='Provider Account 3', provider=providers[2], account='C'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) + provider_accounts = [ + baker.make('circuits.ProviderAccount', provider=providers[i]) + for i in range(3) + ] - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0]), - ProviderNetwork(name='Provider Network 2', provider=providers[1]), - ProviderNetwork(name='Provider Network 3', provider=providers[2]), - ) - ProviderNetwork.objects.bulk_create(provider_networks) + provider_networks = [ + baker.make('circuits.ProviderNetwork', provider=providers[i]) + for i in range(3) + ] - virtual_circuit_types = ( - VirtualCircuitType(name='Virtual Circuit Type 1', slug='virtual-circuit-type-1'), - VirtualCircuitType(name='Virtual Circuit Type 2', slug='virtual-circuit-type-2'), - VirtualCircuitType(name='Virtual Circuit Type 3', slug='virtual-circuit-type-3'), - ) - VirtualCircuitType.objects.bulk_create(virtual_circuit_types) + virtual_circuit_types = baker.make('circuits.VirtualCircuitType', _quantity=3) - virutal_circuits = ( + VirtualCircuit.objects.bulk_create(( VirtualCircuit( provider_network=provider_networks[0], provider_account=provider_accounts[0], @@ -981,8 +910,7 @@ class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTests): status=CircuitStatusChoices.STATUS_DEPROVISIONING, description='virtualcircuit3', ), - ) - VirtualCircuit.objects.bulk_create(virutal_circuits) + )) def test_q(self): params = {'q': 'virtualcircuit1'} @@ -1045,99 +973,46 @@ class VirtualCircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests): @classmethod def setUpTestData(cls): - manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1') - device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1') - device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1') - site = Site.objects.create(name='Site 1', slug='site-1') + site = baker.make('dcim.Site') + device_type = baker.make('dcim.DeviceType') + device_role = baker.make('dcim.DeviceRole') - devices = ( - Device(site=site, name='Device 1', device_type=device_type, role=device_role), - Device(site=site, name='Device 2', device_type=device_type, role=device_role), - Device(site=site, name='Device 3', device_type=device_type, role=device_role), - ) - Device.objects.bulk_create(devices) + devices = [ + baker.make('dcim.Device', site=site, device_type=device_type, role=device_role, name=f'Device {i + 1}') + for i in range(3) + ] - virtual_interfaces = ( - # Device 1 - Interface( - device=devices[0], - name='eth0.1', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[0], - name='eth0.2', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - # Device 2 - Interface( - device=devices[1], - name='eth0.1', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[1], - name='eth0.2', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - # Device 3 - Interface( - device=devices[2], - name='eth0.1', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[2], - name='eth0.2', - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - ) - Interface.objects.bulk_create(virtual_interfaces) + virtual_interfaces = [] + for device in devices: + for j in range(2): + virtual_interfaces.append( + Interface.objects.create( + device=device, + name=f'eth0.{j + 1}', + type=InterfaceTypeChoices.TYPE_VIRTUAL, + ) + ) - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) - provider_networks = ( - ProviderNetwork(provider=providers[0], name='Provider Network 1'), - ProviderNetwork(provider=providers[1], name='Provider Network 2'), - ProviderNetwork(provider=providers[2], name='Provider Network 3'), - ) - ProviderNetwork.objects.bulk_create(provider_networks) - provider_accounts = ( - ProviderAccount(provider=providers[0], account='Provider Account 1'), - ProviderAccount(provider=providers[1], account='Provider Account 2'), - ProviderAccount(provider=providers[2], account='Provider Account 3'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) - virtual_circuit_type = VirtualCircuitType.objects.create( - name='Virtual Circuit Type 1', - slug='virtual-circuit-type-1' - ) + providers = baker.make('circuits.Provider', _quantity=3) + provider_networks = [ + baker.make('circuits.ProviderNetwork', provider=providers[i]) + for i in range(3) + ] + provider_accounts = [ + baker.make('circuits.ProviderAccount', provider=providers[i]) + for i in range(3) + ] + virtual_circuit_type = baker.make('circuits.VirtualCircuitType') - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_networks[0], - provider_account=provider_accounts[0], - cid='Virtual Circuit 1', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_networks[1], - provider_account=provider_accounts[1], - cid='Virtual Circuit 2', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_networks[2], - provider_account=provider_accounts[2], - cid='Virtual Circuit 3', - type=virtual_circuit_type - ), - ) - VirtualCircuit.objects.bulk_create(virtual_circuits) + virtual_circuits = [ + baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_networks[i], + provider_account=provider_accounts[i], + type=virtual_circuit_type, + ) + for i in range(3) + ] virtual_circuit_terminations = ( VirtualCircuitTermination( diff --git a/netbox/circuits/tests/test_models.py b/netbox/circuits/tests/test_models.py index a3c4a54ca..20ec7e3e1 100644 --- a/netbox/circuits/tests/test_models.py +++ b/netbox/circuits/tests/test_models.py @@ -1,29 +1,22 @@ from django.contrib.contenttypes.models import ContentType from django.core.exceptions import NON_FIELD_ERRORS, ValidationError from django.test import TestCase +from model_bakery import baker -from circuits.models import Circuit, CircuitTermination, CircuitType, Provider, ProviderNetwork -from dcim.models import Site +from circuits.models import CircuitTermination class CircuitTerminationTestCase(TestCase): @classmethod def setUpTestData(cls): - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + provider = baker.make('circuits.Provider') - cls.sites = ( - Site.objects.create(name='Site 1', slug='site-1'), - Site.objects.create(name='Site 2', slug='site-2'), - ) + cls.sites = baker.make('dcim.Site', _quantity=2) - cls.circuits = ( - Circuit.objects.create(cid='Circuit 1', provider=provider, type=circuit_type), - Circuit.objects.create(cid='Circuit 2', provider=provider, type=circuit_type), - ) + cls.circuits = baker.make('circuits.Circuit', provider=provider, _quantity=2) - cls.provider_network = ProviderNetwork.objects.create(name='Provider Network 1', provider=provider) + cls.provider_network = baker.make('circuits.ProviderNetwork', provider=provider) def test_circuit_termination_creation_populates_circuit_cache(self): """ diff --git a/netbox/circuits/tests/test_signals.py b/netbox/circuits/tests/test_signals.py index e553bcf92..250ed57b0 100644 --- a/netbox/circuits/tests/test_signals.py +++ b/netbox/circuits/tests/test_signals.py @@ -2,18 +2,14 @@ from types import SimpleNamespace from unittest.mock import MagicMock, patch from django.test import SimpleTestCase, TestCase +from model_bakery import baker from circuits import signals -from circuits.models import Circuit, CircuitTermination, CircuitType, Provider +from circuits.models import CircuitTermination from dcim.models import ( Cable, CablePath, - Device, - DeviceRole, - DeviceType, Interface, - Manufacturer, - Site, ) @@ -25,18 +21,13 @@ class RebuildCablepathsSignalTestCase(TestCase): @classmethod def setUpTestData(cls): - cls.site = Site.objects.create(name='Site', slug='site') - manufacturer = Manufacturer.objects.create(name='Manufacturer', slug='manufacturer') - device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type') - device_role = DeviceRole.objects.create(name='Device Role', slug='device-role') - cls.device = Device.objects.create(site=cls.site, device_type=device_type, role=device_role, name='Device 1') - provider = Provider.objects.create(name='Provider', slug='provider') - circuit_type = CircuitType.objects.create(name='Circuit Type', slug='circuit-type') - cls.circuit = Circuit.objects.create(provider=provider, type=circuit_type, cid='Circuit 1') + cls.site = baker.make('dcim.Site') + cls.device = baker.make('dcim.Device', site=cls.site) + cls.circuit = baker.make('circuits.Circuit') def test_saving_termination_rebuilds_peer_path(self): interface = Interface.objects.create(device=self.device, name='Interface 1') - site_z = Site.objects.create(name='Site Z', slug='site-z') + site_z = baker.make('dcim.Site') termination_a = CircuitTermination.objects.create(circuit=self.circuit, termination=self.site, term_side='A') termination_z = CircuitTermination.objects.create(circuit=self.circuit, termination=site_z, term_side='Z') Cable(a_terminations=[interface], b_terminations=[termination_a]).save() @@ -56,7 +47,7 @@ class RebuildCablepathsSignalTestCase(TestCase): self.assertNotEqual(CablePath.objects.get().pk, original_path.pk) def test_deleting_termination_rebuilds_peer_path(self): - site_z = Site.objects.create(name='Site Z', slug='site-z') + site_z = baker.make('dcim.Site') termination_a = CircuitTermination.objects.create(circuit=self.circuit, termination=self.site, term_side='A') termination_z = CircuitTermination.objects.create(circuit=self.circuit, termination=site_z, term_side='Z') diff --git a/netbox/circuits/tests/test_views.py b/netbox/circuits/tests/test_views.py index a9de4663e..333087b7a 100644 --- a/netbox/circuits/tests/test_views.py +++ b/netbox/circuits/tests/test_views.py @@ -2,13 +2,13 @@ import datetime from django.contrib.contenttypes.models import ContentType from django.urls import reverse +from model_bakery import baker from circuits.choices import * from circuits.models import * from core.models import ObjectType from dcim.choices import InterfaceTypeChoices -from dcim.models import Cable, Device, DeviceRole, DeviceType, Interface, Manufacturer, Site -from ipam.models import ASN, RIR +from dcim.models import Cable, Interface, Site from netbox.choices import ImportFormatChoices from users.models import ObjectPermission from utilities.testing import ViewTestCases, create_tags, create_test_device @@ -20,18 +20,10 @@ class ProviderTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - rir = RIR.objects.create(name='RFC 6996', is_private=True) - asns = [ - ASN(asn=65000 + i, rir=rir) for i in range(8) - ] - ASN.objects.bulk_create(asns) + rir = baker.make('ipam.RIR', is_private=True) + asns = [baker.make('ipam.ASN', asn=65000 + i, rir=rir) for i in range(8)] - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - Provider(name='Provider 3', slug='provider-3'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=3) providers[0].asns.set([asns[0], asns[1]]) providers[1].asns.set([asns[2], asns[3]]) providers[2].asns.set([asns[4], asns[5]]) @@ -71,13 +63,7 @@ class CircuitTypeTestCase(ViewTestCases.OrganizationalObjectViewTestCase): @classmethod def setUpTestData(cls): - circuit_types = ( - CircuitType(name='Circuit Type 1', slug='circuit-type-1'), - CircuitType(name='Circuit Type 2', slug='circuit-type-2'), - CircuitType(name='Circuit Type 3', slug='circuit-type-3'), - ) - - CircuitType.objects.bulk_create(circuit_types) + circuit_types = baker.make('circuits.CircuitType', _quantity=3) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -119,39 +105,24 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - Site.objects.create(name='Site 1', slug='site-1') + baker.make('dcim.Site', name='Site 1', slug='site-1') - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), + providers = baker.make('circuits.Provider', _quantity=2) + + provider_accounts = [ + baker.make('circuits.ProviderAccount', provider=providers[0]), + baker.make('circuits.ProviderAccount', provider=providers[1]), + ] + + circuittypes = baker.make('circuits.CircuitType', _quantity=2) + + circuits = baker.make( + 'circuits.Circuit', + provider=providers[0], + provider_account=provider_accounts[0], + type=circuittypes[0], + _quantity=3, ) - Provider.objects.bulk_create(providers) - - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='1234'), - ProviderAccount(name='Provider Account 2', provider=providers[1], account='2345'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) - - circuittypes = ( - CircuitType(name='Circuit Type 1', slug='circuit-type-1'), - CircuitType(name='Circuit Type 2', slug='circuit-type-2'), - ) - CircuitType.objects.bulk_create(circuittypes) - - circuits = ( - Circuit( - cid='Circuit 1', provider=providers[0], provider_account=provider_accounts[0], type=circuittypes[0] - ), - Circuit( - cid='Circuit 2', provider=providers[0], provider_account=provider_accounts[0], type=circuittypes[0] - ), - Circuit( - cid='Circuit 3', provider=providers[0], provider_account=provider_accounts[0], type=circuittypes[0] - ), - ) - - Circuit.objects.bulk_create(circuits) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -172,9 +143,9 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.csv_data = ( "cid,provider,provider_account,type,status", - "Circuit 4,Provider 1,Provider Account 1,Circuit Type 1,active", - "Circuit 5,Provider 1,Provider Account 1,Circuit Type 1,active", - "Circuit 6,Provider 1,Provider Account 1,Circuit Type 1,active", + f"Circuit 4,{providers[0].name},{provider_accounts[0].name},{circuittypes[0].name},active", + f"Circuit 5,{providers[0].name},{provider_accounts[0].name},{circuittypes[0].name},active", + f"Circuit 6,{providers[0].name},{provider_accounts[0].name},{circuittypes[0].name},active", ) cls.csv_update_data = ( @@ -196,12 +167,11 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): } def test_circuit_type_display_colored(self): - circuit_type = CircuitType.objects.first() + circuit = Circuit.objects.first() + circuit_type = circuit.type circuit_type.color = '12ab34' circuit_type.save() - circuit = Circuit.objects.first() - self.add_permissions('circuits.view_circuit') response = self.client.get(circuit.get_absolute_url()) @@ -221,8 +191,8 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): [ {{ "cid": "Circuit 7", - "provider": "Provider 1", - "type": "Circuit Type 1", + "provider": "{Provider.objects.first().name}", + "type": "{CircuitType.objects.first().name}", "status": "active", "description": "Testing Import", "terminations": [ @@ -270,18 +240,9 @@ class ProviderAccountTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=2) - provider_accounts = ( - ProviderAccount(name='Provider Account 1', provider=providers[0], account='1234'), - ProviderAccount(name='Provider Account 2', provider=providers[0], account='2345'), - ProviderAccount(name='Provider Account 3', provider=providers[0], account='3456'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) + provider_accounts = baker.make('circuits.ProviderAccount', provider=providers[0], _quantity=3) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -296,9 +257,9 @@ class ProviderAccountTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.csv_data = ( "name,provider,account,description", - "Provider Account 4,Provider 1,4567,Foo", - "Provider Account 5,Provider 1,5678,Bar", - "Provider Account 6,Provider 1,6789,Baz", + f"Provider Account 4,{providers[0].name},4567,Foo", + f"Provider Account 5,{providers[0].name},5678,Bar", + f"Provider Account 6,{providers[0].name},6789,Baz", ) cls.csv_update_data = ( @@ -321,19 +282,9 @@ class ProviderNetworkTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - providers = ( - Provider(name='Provider 1', slug='provider-1'), - Provider(name='Provider 2', slug='provider-2'), - ) - Provider.objects.bulk_create(providers) + providers = baker.make('circuits.Provider', _quantity=2) - provider_networks = ( - ProviderNetwork(name='Provider Network 1', provider=providers[0]), - ProviderNetwork(name='Provider Network 2', provider=providers[0]), - ProviderNetwork(name='Provider Network 3', provider=providers[0]), - ) - - ProviderNetwork.objects.bulk_create(provider_networks) + provider_networks = baker.make('circuits.ProviderNetwork', provider=providers[0], _quantity=3) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -347,9 +298,9 @@ class ProviderNetworkTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.csv_data = ( "name,provider,description", - "Provider Network 4,Provider 1,Foo", - "Provider Network 5,Provider 1,Bar", - "Provider Network 6,Provider 1,Baz", + f"Provider Network 4,{providers[0].name},Foo", + f"Provider Network 5,{providers[0].name},Bar", + f"Provider Network 6,{providers[0].name},Baz", ) cls.csv_update_data = ( @@ -372,21 +323,11 @@ class CircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - sites = ( - Site(name='Site 1', slug='site-1'), - Site(name='Site 2', slug='site-2'), - Site(name='Site 3', slug='site-3'), - ) - Site.objects.bulk_create(sites) - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - circuittype = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + sites = baker.make('dcim.Site', _quantity=3) + provider = baker.make('circuits.Provider') + circuittype = baker.make('circuits.CircuitType') - circuits = ( - Circuit(cid='Circuit 1', provider=provider, type=circuittype), - Circuit(cid='Circuit 2', provider=provider, type=circuittype), - Circuit(cid='Circuit 3', provider=provider, type=circuittype), - ) - Circuit.objects.bulk_create(circuits) + circuits = baker.make('circuits.Circuit', provider=provider, type=circuittype, _quantity=3) circuit_terminations = ( CircuitTermination(circuit=circuits[0], term_side='A', termination=sites[0]), @@ -408,8 +349,8 @@ class CircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase): site = sites[0].pk cls.csv_data = ( "circuit,term_side,termination_type,termination_id,description", - f"Circuit 3,A,dcim.site,{site},Foo", - f"Circuit 3,Z,dcim.site,{site},Bar", + f"{circuits[2].cid},A,dcim.site,{site},Foo", + f"{circuits[2].cid},Z,dcim.site,{site},Bar", ) cls.csv_update_data = ( @@ -450,12 +391,7 @@ class CircuitGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase): @classmethod def setUpTestData(cls): - circuit_groups = ( - CircuitGroup(name='Circuit Group 1', slug='circuit-group-1'), - CircuitGroup(name='Circuit Group 2', slug='circuit-group-2'), - CircuitGroup(name='Circuit Group 3', slug='circuit-group-3'), - ) - CircuitGroup.objects.bulk_create(circuit_groups) + circuit_groups = baker.make('circuits.CircuitGroup', _quantity=3) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -499,24 +435,12 @@ class CircuitGroupAssignmentTestCase( @classmethod def setUpTestData(cls): - circuit_groups = ( - CircuitGroup(name='Circuit Group 1', slug='circuit-group-1'), - CircuitGroup(name='Circuit Group 2', slug='circuit-group-2'), - CircuitGroup(name='Circuit Group 3', slug='circuit-group-3'), - CircuitGroup(name='Circuit Group 4', slug='circuit-group-4'), - ) - CircuitGroup.objects.bulk_create(circuit_groups) + circuit_groups = baker.make('circuits.CircuitGroup', _quantity=4) - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - circuittype = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') + provider = baker.make('circuits.Provider') + circuittype = baker.make('circuits.CircuitType') - circuits = ( - Circuit(cid='Circuit 1', provider=provider, type=circuittype), - Circuit(cid='Circuit 2', provider=provider, type=circuittype), - Circuit(cid='Circuit 3', provider=provider, type=circuittype), - Circuit(cid='Circuit 4', provider=provider, type=circuittype), - ) - Circuit.objects.bulk_create(circuits) + circuits = baker.make('circuits.Circuit', provider=provider, type=circuittype, _quantity=4) assignments = ( CircuitGroupAssignment( @@ -572,12 +496,7 @@ class VirtualCircuitTypeTestCase(ViewTestCases.OrganizationalObjectViewTestCase) @classmethod def setUpTestData(cls): - virtual_circuit_types = ( - VirtualCircuitType(name='Virtual Circuit Type 1', slug='circuit-type-1'), - VirtualCircuitType(name='Virtual Circuit Type 2', slug='circuit-type-2'), - VirtualCircuitType(name='Virtual Circuit Type 3', slug='circuit-type-3'), - ) - VirtualCircuitType.objects.bulk_create(virtual_circuit_types) + virtual_circuit_types = baker.make('circuits.VirtualCircuitType', _quantity=3) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -619,52 +538,27 @@ class VirtualCircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): @classmethod def setUpTestData(cls): - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - provider_networks = ( - ProviderNetwork(provider=provider, name='Provider Network 1'), - ProviderNetwork(provider=provider, name='Provider Network 2'), - ) - ProviderNetwork.objects.bulk_create(provider_networks) - provider_accounts = ( - ProviderAccount(provider=provider, account='Provider Account 1'), - ProviderAccount(provider=provider, account='Provider Account 2'), - ) - ProviderAccount.objects.bulk_create(provider_accounts) - virtual_circuit_types = ( - VirtualCircuitType(name='Virtual Circuit Type 1', slug='virtual-circuit-type-1'), - VirtualCircuitType(name='Virtual Circuit Type 2', slug='virtual-circuit-type-2'), - ) - VirtualCircuitType.objects.bulk_create(virtual_circuit_types) + provider = baker.make('circuits.Provider') + provider_networks = baker.make('circuits.ProviderNetwork', provider=provider, _quantity=2) + provider_accounts = baker.make('circuits.ProviderAccount', provider=provider, _quantity=2) + virtual_circuit_types = baker.make('circuits.VirtualCircuitType', _quantity=2) - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_networks[0], - provider_account=provider_accounts[0], - cid='Virtual Circuit 1', - type=virtual_circuit_types[0] - ), - VirtualCircuit( - provider_network=provider_networks[0], - provider_account=provider_accounts[0], - cid='Virtual Circuit 2', - type=virtual_circuit_types[0] - ), - VirtualCircuit( - provider_network=provider_networks[0], - provider_account=provider_accounts[0], - cid='Virtual Circuit 3', - type=virtual_circuit_types[0] - ), + virtual_circuits = baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_networks[0], + provider_account=provider_accounts[0], + type=virtual_circuit_types[0], + _quantity=3, ) - VirtualCircuit.objects.bulk_create(virtual_circuits) device = create_test_device('Device 1') - interfaces = ( - Interface(device=device, name='Interface 1', type=InterfaceTypeChoices.TYPE_VIRTUAL), - Interface(device=device, name='Interface 2', type=InterfaceTypeChoices.TYPE_VIRTUAL), - Interface(device=device, name='Interface 3', type=InterfaceTypeChoices.TYPE_VIRTUAL), - ) - Interface.objects.bulk_create(interfaces) + interfaces = [] + for i in range(3): + interfaces.append( + Interface.objects.create( + device=device, name=f'Interface {i + 1}', type=InterfaceTypeChoices.TYPE_VIRTUAL + ) + ) tags = create_tags('Alpha', 'Bravo', 'Charlie') @@ -682,16 +576,16 @@ class VirtualCircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.csv_data = ( "cid,provider_network,provider_account,type,status", ( - f"Virtual Circuit 4,Provider Network 1,Provider Account 1,{virtual_circuit_types[0].name}," - f"{CircuitStatusChoices.STATUS_PLANNED}" + f"Virtual Circuit 4,{provider_networks[0].name},{provider_accounts[0].account}," + f"{virtual_circuit_types[0].name},{CircuitStatusChoices.STATUS_PLANNED}" ), ( - f"Virtual Circuit 5,Provider Network 1,Provider Account 1,{virtual_circuit_types[0].name}," - f"{CircuitStatusChoices.STATUS_PLANNED}" + f"Virtual Circuit 5,{provider_networks[0].name},{provider_accounts[0].account}," + f"{virtual_circuit_types[0].name},{CircuitStatusChoices.STATUS_PLANNED}" ), ( - f"Virtual Circuit 6,Provider Network 1,Provider Account 1,{virtual_circuit_types[0].name}," - f"{CircuitStatusChoices.STATUS_PLANNED}" + f"Virtual Circuit 6,{provider_networks[0].name},{provider_accounts[0].account}," + f"{virtual_circuit_types[0].name},{CircuitStatusChoices.STATUS_PLANNED}" ), ) @@ -732,8 +626,8 @@ class VirtualCircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): [ {{ "cid": "Virtual Circuit 7", - "provider_network": "Provider Network 1", - "type": "Virtual Circuit Type 1", + "provider_network": "{ProviderNetwork.objects.first().name}", + "type": "{VirtualCircuitType.objects.first().name}", "status": "active", "terminations": [ {{ @@ -781,129 +675,58 @@ class VirtualCircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase) @classmethod def setUpTestData(cls): - manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1') - device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1') - device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1') - site = Site.objects.create(name='Site 1', slug='site-1') + site = baker.make('dcim.Site') + device_type = baker.make('dcim.DeviceType') + device_role = baker.make('dcim.DeviceRole') - devices = ( - Device(site=site, name='hub', device_type=device_type, role=device_role), - Device(site=site, name='spoke1', device_type=device_type, role=device_role), - Device(site=site, name='spoke2', device_type=device_type, role=device_role), - Device(site=site, name='spoke3', device_type=device_type, role=device_role), + devices = [ + baker.make('dcim.Device', site=site, device_type=device_type, role=device_role, name=name) + for name in ('hub', 'spoke1', 'spoke2', 'spoke3') + ] + + physical_interfaces = [] + for device in devices: + physical_interfaces.append( + Interface.objects.create(device=device, name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED) + ) + + virtual_interfaces = [] + # Point-to-point VCs + for i, (device, parent) in enumerate(zip(devices, physical_interfaces)): + count = 3 if i == 0 else 1 + for j in range(count): + virtual_interfaces.append( + Interface.objects.create( + device=device, + name=f'eth0.{j + 1}', + parent=parent, + type=InterfaceTypeChoices.TYPE_VIRTUAL, + ) + ) + + # Hub and spoke VCs + for device in devices: + virtual_interfaces.append( + Interface.objects.create( + device=device, + name='eth0.9', + parent=physical_interfaces[0], + type=InterfaceTypeChoices.TYPE_VIRTUAL, + ) + ) + + provider = baker.make('circuits.Provider') + provider_network = baker.make('circuits.ProviderNetwork', provider=provider) + provider_account = baker.make('circuits.ProviderAccount', provider=provider) + virtual_circuit_type = baker.make('circuits.VirtualCircuitType') + + virtual_circuits = baker.make( + 'circuits.VirtualCircuit', + provider_network=provider_network, + provider_account=provider_account, + type=virtual_circuit_type, + _quantity=4, ) - Device.objects.bulk_create(devices) - - physical_interfaces = ( - Interface(device=devices[0], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[1], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[2], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - Interface(device=devices[3], name='eth0', type=InterfaceTypeChoices.TYPE_1GE_FIXED), - ) - Interface.objects.bulk_create(physical_interfaces) - - virtual_interfaces = ( - # Point-to-point VCs - Interface( - device=devices[0], - name='eth0.1', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[0], - name='eth0.2', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[0], - name='eth0.3', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[1], - name='eth0.1', - parent=physical_interfaces[1], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[2], - name='eth0.1', - parent=physical_interfaces[2], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[3], - name='eth0.1', - parent=physical_interfaces[3], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - - # Hub and spoke VCs - Interface( - device=devices[0], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[1], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[2], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - Interface( - device=devices[3], - name='eth0.9', - parent=physical_interfaces[0], - type=InterfaceTypeChoices.TYPE_VIRTUAL - ), - ) - Interface.objects.bulk_create(virtual_interfaces) - - provider = Provider.objects.create(name='Provider 1', slug='provider-1') - provider_network = ProviderNetwork.objects.create(provider=provider, name='Provider Network 1') - provider_account = ProviderAccount.objects.create(provider=provider, account='Provider Account 1') - virtual_circuit_type = VirtualCircuitType.objects.create( - name='Virtual Circuit Type 1', - slug='virtual-circuit-type-1' - ) - - virtual_circuits = ( - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 1', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 2', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 3', - type=virtual_circuit_type - ), - VirtualCircuit( - provider_network=provider_network, - provider_account=provider_account, - cid='Virtual Circuit 4', - type=virtual_circuit_type - ), - ) - VirtualCircuit.objects.bulk_create(virtual_circuits) virtual_circuit_terminations = ( VirtualCircuitTermination( @@ -945,12 +768,15 @@ class VirtualCircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase) 'interface': virtual_interfaces[6].pk } + vc_cid = virtual_circuits[3].cid + hub = VirtualCircuitTerminationRoleChoices.ROLE_HUB + spoke = VirtualCircuitTerminationRoleChoices.ROLE_SPOKE cls.csv_data = ( "virtual_circuit,role,interface,description", - f"Virtual Circuit 4,{VirtualCircuitTerminationRoleChoices.ROLE_HUB},{virtual_interfaces[6].pk},Hub", - f"Virtual Circuit 4,{VirtualCircuitTerminationRoleChoices.ROLE_SPOKE},{virtual_interfaces[7].pk},Spoke 1", - f"Virtual Circuit 4,{VirtualCircuitTerminationRoleChoices.ROLE_SPOKE},{virtual_interfaces[8].pk},Spoke 2", - f"Virtual Circuit 4,{VirtualCircuitTerminationRoleChoices.ROLE_SPOKE},{virtual_interfaces[9].pk},Spoke 3", + f"{vc_cid},{hub},{virtual_interfaces[6].pk},Hub", + f"{vc_cid},{spoke},{virtual_interfaces[7].pk},Spoke 1", + f"{vc_cid},{spoke},{virtual_interfaces[8].pk},Spoke 2", + f"{vc_cid},{spoke},{virtual_interfaces[9].pk},Spoke 3", ) cls.csv_update_data = ( diff --git a/netbox/netbox/configuration_testing.py b/netbox/netbox/configuration_testing.py index 3ac9c2642..62c385a6b 100644 --- a/netbox/netbox/configuration_testing.py +++ b/netbox/netbox/configuration_testing.py @@ -47,6 +47,8 @@ SECRET_KEY = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' DEFAULT_PERMISSIONS = {} +MPTT_ALLOW_TESTING_GENERATORS = True + API_TOKEN_PEPPERS = { 1: 'TEST-VALUE-DO-NOT-USE-TEST-VALUE-DO-NOT-USE-TEST-VALUE-DO-NOT-USE', } diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 0bbb8f36d..45ad3ad49 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -144,6 +144,7 @@ JINJA2_FILTERS = getattr(configuration, 'JINJA2_FILTERS', {}) LANGUAGE_CODE = getattr(configuration, 'DEFAULT_LANGUAGE', 'en-us') LANGUAGE_COOKIE_PATH = CSRF_COOKIE_PATH LOGGING = getattr(configuration, 'LOGGING', {}) +MPTT_ALLOW_TESTING_GENERATORS = getattr(configuration, 'MPTT_ALLOW_TESTING_GENERATORS', False) LOGIN_PERSISTENCE = getattr(configuration, 'LOGIN_PERSISTENCE', False) LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', True) LOGIN_TIMEOUT = getattr(configuration, 'LOGIN_TIMEOUT', None)