mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 04:22:01 -06:00
Extend cable path tests
This commit is contained in:
parent
cd71799373
commit
e53ae1d584
@ -45,17 +45,36 @@ class CablePathTestCase(TestCase):
|
||||
]
|
||||
Interface.objects.bulk_create(cls.interfaces)
|
||||
|
||||
# Create four RearPorts with four FrontPorts each
|
||||
# Create four RearPorts with four FrontPorts each, and two with only one position
|
||||
cls.rear_ports = [
|
||||
RearPort(device=device, name=f'RP{i}', positions=4) for i in range(1, 5)
|
||||
RearPort(device=device, name=f'RP1', positions=4),
|
||||
RearPort(device=device, name=f'RP2', positions=4),
|
||||
RearPort(device=device, name=f'RP3', positions=4),
|
||||
RearPort(device=device, name=f'RP4', positions=4),
|
||||
RearPort(device=device, name=f'RP5', positions=1),
|
||||
RearPort(device=device, name=f'RP6', positions=1),
|
||||
]
|
||||
RearPort.objects.bulk_create(cls.rear_ports)
|
||||
cls.front_ports = []
|
||||
for i, rear_port in enumerate(cls.rear_ports, start=1):
|
||||
cls.front_ports.extend(
|
||||
FrontPort(device=device, name=f'FP{i}:{j}', rear_port=rear_port, rear_port_position=j)
|
||||
for j in range(1, 5)
|
||||
)
|
||||
cls.front_ports = [
|
||||
FrontPort(device=device, name=f'FP1:1', rear_port=cls.rear_ports[0], rear_port_position=1),
|
||||
FrontPort(device=device, name=f'FP1:2', rear_port=cls.rear_ports[0], rear_port_position=2),
|
||||
FrontPort(device=device, name=f'FP1:3', rear_port=cls.rear_ports[0], rear_port_position=3),
|
||||
FrontPort(device=device, name=f'FP1:4', rear_port=cls.rear_ports[0], rear_port_position=4),
|
||||
FrontPort(device=device, name=f'FP2:1', rear_port=cls.rear_ports[1], rear_port_position=1),
|
||||
FrontPort(device=device, name=f'FP2:2', rear_port=cls.rear_ports[1], rear_port_position=2),
|
||||
FrontPort(device=device, name=f'FP2:3', rear_port=cls.rear_ports[1], rear_port_position=3),
|
||||
FrontPort(device=device, name=f'FP2:4', rear_port=cls.rear_ports[1], rear_port_position=4),
|
||||
FrontPort(device=device, name=f'FP3:1', rear_port=cls.rear_ports[2], rear_port_position=1),
|
||||
FrontPort(device=device, name=f'FP3:2', rear_port=cls.rear_ports[2], rear_port_position=2),
|
||||
FrontPort(device=device, name=f'FP3:3', rear_port=cls.rear_ports[2], rear_port_position=3),
|
||||
FrontPort(device=device, name=f'FP3:4', rear_port=cls.rear_ports[2], rear_port_position=4),
|
||||
FrontPort(device=device, name=f'FP4:1', rear_port=cls.rear_ports[3], rear_port_position=1),
|
||||
FrontPort(device=device, name=f'FP4:2', rear_port=cls.rear_ports[3], rear_port_position=2),
|
||||
FrontPort(device=device, name=f'FP4:3', rear_port=cls.rear_ports[3], rear_port_position=3),
|
||||
FrontPort(device=device, name=f'FP4:4', rear_port=cls.rear_ports[3], rear_port_position=4),
|
||||
FrontPort(device=device, name=f'FP5', rear_port=cls.rear_ports[4], rear_port_position=1),
|
||||
FrontPort(device=device, name=f'FP6', rear_port=cls.rear_ports[5], rear_port_position=1),
|
||||
]
|
||||
FrontPort.objects.bulk_create(cls.front_ports)
|
||||
|
||||
# Create four circuits with two terminations (A and Z) each (8 total)
|
||||
@ -341,3 +360,65 @@ class CablePathTestCase(TestCase):
|
||||
# Check for four partial paths; one from each interface
|
||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=True).count(), 4)
|
||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=False).count(), 0)
|
||||
|
||||
def test_05_interfaces_to_interfaces_via_patched_pass_throughs(self):
|
||||
"""
|
||||
[IF1] --C1-- [FP1:1] [RP1] --C3-- [FP5] [RP5] --C4-- [RP2] [FP2:1] --C5-- [IF3]
|
||||
[IF2] --C2-- [FP1:2] [FP2:2] --C6-- [IF4]
|
||||
"""
|
||||
# Create cables 1-2, 5-6
|
||||
cable1 = Cable(termination_a=self.interfaces[0], termination_b=self.front_ports[0]) # IF1 -> FP1:1
|
||||
cable1.save()
|
||||
cable2 = Cable(termination_a=self.interfaces[1], termination_b=self.front_ports[1]) # IF2 -> FP1:2
|
||||
cable2.save()
|
||||
cable5 = Cable(termination_a=self.interfaces[2], termination_b=self.front_ports[4]) # IF3 -> FP2:1
|
||||
cable5.save()
|
||||
cable6 = Cable(termination_a=self.interfaces[3], termination_b=self.front_ports[5]) # IF4 -> FP2:2
|
||||
cable6.save()
|
||||
self.assertEqual(CablePath.objects.count(), 4) # Four partial paths; one from each interface
|
||||
|
||||
# Create cables 3-4
|
||||
cable3 = Cable(termination_a=self.rear_ports[0], termination_b=self.front_ports[16]) # RP1 -> FP5
|
||||
cable3.save()
|
||||
cable4 = Cable(termination_a=self.rear_ports[4], termination_b=self.rear_ports[1]) # RP5 -> RP2
|
||||
cable4.save()
|
||||
self.assertPathExists(
|
||||
origin=self.interfaces[0],
|
||||
destination=self.interfaces[2],
|
||||
path=(
|
||||
cable1, self.front_ports[0], self.rear_ports[0], cable3, self.front_ports[16], self.rear_ports[4],
|
||||
cable4, self.rear_ports[1], self.front_ports[4], cable5
|
||||
)
|
||||
)
|
||||
self.assertPathExists(
|
||||
origin=self.interfaces[1],
|
||||
destination=self.interfaces[3],
|
||||
path=(
|
||||
cable2, self.front_ports[1], self.rear_ports[0], cable3, self.front_ports[16], self.rear_ports[4],
|
||||
cable4, self.rear_ports[1], self.front_ports[5], cable6
|
||||
)
|
||||
)
|
||||
self.assertPathExists(
|
||||
origin=self.interfaces[2],
|
||||
destination=self.interfaces[0],
|
||||
path=(
|
||||
cable5, self.front_ports[4], self.rear_ports[1], cable4, self.rear_ports[4], self.front_ports[16],
|
||||
cable3, self.rear_ports[0], self.front_ports[0], cable1
|
||||
)
|
||||
)
|
||||
self.assertPathExists(
|
||||
origin=self.interfaces[3],
|
||||
destination=self.interfaces[1],
|
||||
path=(
|
||||
cable6, self.front_ports[5], self.rear_ports[1], cable4, self.rear_ports[4], self.front_ports[16],
|
||||
cable3, self.rear_ports[0], self.front_ports[1], cable2
|
||||
)
|
||||
)
|
||||
self.assertEqual(CablePath.objects.count(), 4)
|
||||
|
||||
# Delete cable 3
|
||||
cable3.delete()
|
||||
|
||||
# Check for four partial paths; one from each interface
|
||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=True).count(), 4)
|
||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=False).count(), 0)
|
||||
|
Loading…
Reference in New Issue
Block a user