9604 fix tests

This commit is contained in:
Arthur Hanson 2024-10-25 14:24:59 -07:00
parent 0db4252273
commit 921a4af2d9
10 changed files with 32 additions and 28 deletions

View File

@ -15,6 +15,11 @@ def copy_site_assignments(apps, schema_editor):
scope_id=models.F('site_id')
)
ProviderNetwork = apps.get_model('circuits', 'ProviderNetwork')
CircuitTermination.objects.filter(provider_network__isnull=False).update(
scope_type=ContentType.objects.get_for_model(ProviderNetwork),
scope_id=models.F('provider_network_id')
)
class Migration(migrations.Migration):
@ -42,11 +47,6 @@ class Migration(migrations.Migration):
to='contenttypes.contenttype',
),
),
migrations.RenameField(
model_name='circuittermination',
old_name='provider_network',
new_name='_provider_network',
),
# Copy over existing site assignments
migrations.RunPython(

View File

@ -82,4 +82,9 @@ class Migration(migrations.Migration):
model_name='circuittermination',
name='site',
),
migrations.RenameField(
model_name='circuittermination',
old_name='provider_network',
new_name='_provider_network',
),
]

View File

@ -340,10 +340,8 @@ class CircuitTermination(
super().clean()
# Must define either site *or* provider network
if self.scope is None and self.provider_network is None:
if self.scope is None:
raise ValidationError(_("A circuit termination must attach to either a scope or a provider network."))
if self.scope and self.provider_network:
raise ValidationError(_("A circuit termination cannot attach to both a scope and a provider network."))
def save(self, *args, **kwargs):
# Cache objects associated with the terminating object (for filtering)

View File

@ -182,9 +182,9 @@ class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
circuit_terminations = (
CircuitTermination(circuit=circuits[0], term_side=SIDE_A, scope=sites[0]),
CircuitTermination(circuit=circuits[0], term_side=SIDE_Z, provider_network=provider_networks[0]),
CircuitTermination(circuit=circuits[0], term_side=SIDE_Z, scope=provider_networks[0]),
CircuitTermination(circuit=circuits[1], term_side=SIDE_A, scope=sites[1]),
CircuitTermination(circuit=circuits[1], term_side=SIDE_Z, provider_network=provider_networks[1]),
CircuitTermination(circuit=circuits[1], term_side=SIDE_Z, scope=provider_networks[1]),
)
CircuitTermination.objects.bulk_create(circuit_terminations)
@ -199,7 +199,8 @@ class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
{
'circuit': circuits[2].pk,
'term_side': SIDE_Z,
'provider_network': provider_networks[0].pk,
'scope_type': 'circuits.providernetwork',
'scope_id': provider_networks[0].pk,
'port_speed': 200000,
},
]

View File

@ -238,9 +238,9 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
CircuitTermination(circuit=circuits[0], scope=sites[0], term_side='A'),
CircuitTermination(circuit=circuits[1], scope=sites[1], term_side='A'),
CircuitTermination(circuit=circuits[2], scope=sites[2], term_side='A'),
CircuitTermination(circuit=circuits[3], provider_network=provider_networks[0], term_side='A'),
CircuitTermination(circuit=circuits[4], provider_network=provider_networks[1], term_side='A'),
CircuitTermination(circuit=circuits[5], provider_network=provider_networks[2], term_side='A'),
CircuitTermination(circuit=circuits[3], scope=provider_networks[0], term_side='A'),
CircuitTermination(circuit=circuits[4], scope=provider_networks[1], term_side='A'),
CircuitTermination(circuit=circuits[5], scope=provider_networks[2], term_side='A'),
))
for ct in circuit_terminations:
ct.save()
@ -393,10 +393,10 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
CircuitTermination(circuit=circuits[1], scope=sites[2], term_side='Z', port_speed=2000, upstream_speed=2000, xconnect_id='JKL'),
CircuitTermination(circuit=circuits[2], scope=sites[2], term_side='A', port_speed=3000, upstream_speed=3000, xconnect_id='MNO'),
CircuitTermination(circuit=circuits[2], scope=sites[0], term_side='Z', port_speed=3000, upstream_speed=3000, xconnect_id='PQR'),
CircuitTermination(circuit=circuits[3], provider_network=provider_networks[0], term_side='A'),
CircuitTermination(circuit=circuits[4], provider_network=provider_networks[1], term_side='A'),
CircuitTermination(circuit=circuits[5], provider_network=provider_networks[2], term_side='A'),
CircuitTermination(circuit=circuits[6], provider_network=provider_networks[0], term_side='A', mark_connected=True),
CircuitTermination(circuit=circuits[3], scope=provider_networks[0], term_side='A'),
CircuitTermination(circuit=circuits[4], scope=provider_networks[1], term_side='A'),
CircuitTermination(circuit=circuits[5], scope=provider_networks[2], term_side='A'),
CircuitTermination(circuit=circuits[6], scope=provider_networks[0], term_side='A', mark_connected=True),
))
for ct in circuit_terminations:
ct.save()

View File

@ -347,7 +347,7 @@ class ProviderNetworkTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
class CircuitTerminationTestCase(ViewTestCases.PrimaryObjectViewTestCase):
class TestCase(ViewTestCases.PrimaryObjectViewTestCase):
model = CircuitTermination
@classmethod

View File

@ -158,7 +158,7 @@ class ProviderNetworkView(GetRelatedModelsMixin, generic.ObjectView):
instance,
extra=(
(
Circuit.objects.restrict(request.user, 'view').filter(terminations__provider_network=instance),
Circuit.objects.restrict(request.user, 'view').filter(terminations___provider_network=instance),
'provider_network_id',
),
),
@ -258,7 +258,7 @@ class CircuitTypeBulkDeleteView(generic.BulkDeleteView):
class CircuitListView(generic.ObjectListView):
queryset = Circuit.objects.prefetch_related(
'tenant__group', 'termination_a___site', 'termination_z___site',
'termination_a__provider_network', 'termination_z__provider_network',
'termination_a___provider_network', 'termination_z___provider_network',
)
filterset = filtersets.CircuitFilterSet
filterset_form = forms.CircuitFilterForm
@ -299,7 +299,7 @@ class CircuitBulkImportView(generic.BulkImportView):
class CircuitBulkEditView(generic.BulkEditView):
queryset = Circuit.objects.prefetch_related(
'termination_a___site', 'termination_z___site',
'termination_a__provider_network', 'termination_z__provider_network',
'termination_a___provider_network', 'termination_z___provider_network',
)
filterset = filtersets.CircuitFilterSet
table = tables.CircuitTable
@ -309,7 +309,7 @@ class CircuitBulkEditView(generic.BulkEditView):
class CircuitBulkDeleteView(generic.BulkDeleteView):
queryset = Circuit.objects.prefetch_related(
'termination_a___site', 'termination_z___site',
'termination_a__provider_network', 'termination_z__provider_network',
'termination_a___provider_network', 'termination_z___provider_network',
)
filterset = filtersets.CircuitFilterSet
table = tables.CircuitTable

View File

@ -344,7 +344,7 @@ class CableTermination(ChangeLoggedModel):
)
# A CircuitTermination attached to a ProviderNetwork cannot have a Cable
if self.termination_type.model == 'circuittermination' and self.termination.provider_network is not None:
if self.termination_type.model == 'circuittermination' and self.termination._provider_network is not None:
raise ValidationError(_("Circuit terminations attached to a provider network may not be cabled."))
def save(self, *args, **kwargs):
@ -690,11 +690,11 @@ class CablePath(models.Model):
).first()
if circuit_termination is None:
break
elif circuit_termination.provider_network:
elif circuit_termination._provider_network:
# Circuit terminates to a ProviderNetwork
path.extend([
[object_to_path_node(circuit_termination)],
[object_to_path_node(circuit_termination.provider_network)],
[object_to_path_node(circuit_termination._provider_network)],
])
is_complete = True
break

View File

@ -1366,7 +1366,7 @@ class CablePathTestCase(TestCase):
interface1 = Interface.objects.create(device=self.device, name='Interface 1')
providernetwork = ProviderNetwork.objects.create(name='Provider Network 1', provider=self.circuit.provider)
circuittermination1 = CircuitTermination.objects.create(circuit=self.circuit, scope=self.site, term_side='A')
circuittermination2 = CircuitTermination.objects.create(circuit=self.circuit, provider_network=providernetwork, term_side='Z')
circuittermination2 = CircuitTermination.objects.create(circuit=self.circuit, scope=providernetwork, term_side='Z')
# Create cable 1
cable1 = Cable(

View File

@ -764,7 +764,7 @@ class CableTestCase(TestCase):
circuit2 = Circuit.objects.create(provider=provider, type=circuittype, cid='2')
CircuitTermination.objects.create(circuit=circuit1, scope=site, term_side='A')
CircuitTermination.objects.create(circuit=circuit1, scope=site, term_side='Z')
CircuitTermination.objects.create(circuit=circuit2, provider_network=provider_network, term_side='A')
CircuitTermination.objects.create(circuit=circuit2, scope=provider_network, term_side='A')
def test_cable_creation(self):
"""