Browse Source

Tests cleanup

jeremystretch 3 years ago
parent
commit
906c3dca8b

+ 8 - 8
netbox/dcim/api/views.py

@@ -68,15 +68,15 @@ class PathEndpointMixin(object):
                 break
 
             # Serialize each object
-            serializer_a = get_serializer_for_model(near_end, prefix='Nested')
-            x = serializer_a(near_end, context={'request': request}).data
+            serializer_a = get_serializer_for_model(near_end[0], prefix='Nested')
+            x = serializer_a(near_end, many=True, context={'request': request}).data
             if cable is not None:
-                y = serializers.TracedCableSerializer(cable, context={'request': request}).data
+                y = serializers.TracedCableSerializer(cable[0], context={'request': request}).data
             else:
                 y = None
             if far_end is not None:
-                serializer_b = get_serializer_for_model(far_end, prefix='Nested')
-                z = serializer_b(far_end, context={'request': request}).data
+                serializer_b = get_serializer_for_model(far_end[0], prefix='Nested')
+                z = serializer_b(far_end, many=True, context={'request': request}).data
             else:
                 z = None
 
@@ -745,13 +745,13 @@ class ConnectedDeviceViewSet(ViewSet):
             device=peer_device,
             name=peer_interface_name
         )
-        endpoint = peer_interface.connected_endpoint
+        endpoints = peer_interface.connected_endpoints
 
         # If an Interface, return the parent device
-        if type(endpoint) is Interface:
+        if endpoints and type(endpoints[0]) is Interface:
             device = get_object_or_404(
                 Device.objects.restrict(request.user, 'view'),
-                pk=endpoint.device_id
+                pk=endpoints[0].device_id
             )
             return Response(serializers.DeviceSerializer(device, context={'request': request}).data)
 

+ 8 - 6
netbox/dcim/tables/cables.py

@@ -11,7 +11,7 @@ __all__ = (
 )
 
 
-class CableTerminationColumn(tables.TemplateColumn):
+class CableTerminationsColumn(tables.TemplateColumn):
 
     def __init__(self, cable_end, *args, **kwargs):
         template_code = """
@@ -24,7 +24,7 @@ class CableTerminationColumn(tables.TemplateColumn):
         super().__init__(template_code=template_code, *args, **kwargs)
 
     def value(self, value):
-        return ', '.join(value.all())
+        return ', '.join([str(t.termination) for t in value.all()])
 
 
 #
@@ -56,15 +56,17 @@ class CableTable(NetBoxTable):
     #     linkify=True,
     #     verbose_name='Rack B'
     # )
-    a_terminations = CableTerminationColumn(
+    a_terminations = CableTerminationsColumn(
         cable_end='A',
         accessor=Accessor('terminations'),
-        orderable=False
+        orderable=False,
+        verbose_name='A Side'
     )
-    b_terminations = CableTerminationColumn(
+    b_terminations = CableTerminationsColumn(
         cable_end='B',
         accessor=Accessor('terminations'),
-        orderable=False
+        orderable=False,
+        verbose_name='B Side'
     )
     status = columns.ChoiceFieldColumn()
     tenant = TenantColumn()

+ 2 - 2
netbox/dcim/tests/test_api.py

@@ -55,9 +55,9 @@ class Mixins:
             self.assertHttpStatus(response, status.HTTP_200_OK)
             self.assertEqual(len(response.data), 1)
             segment1 = response.data[0]
-            self.assertEqual(segment1[0]['name'], obj.name)
+            self.assertEqual(segment1[0][0]['name'], obj.name)
             self.assertEqual(segment1[1]['label'], cable.label)
-            self.assertEqual(segment1[2]['name'], peer_obj.name)
+            self.assertEqual(segment1[2][0]['name'], peer_obj.name)
 
 
 class RegionTest(APIViewTestCases.APIViewTestCase):

+ 4 - 1
netbox/dcim/tests/test_filtersets.py

@@ -3668,7 +3668,10 @@ class CableTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
     def test_termination_ids(self):
-        interface_ids = Cable.objects.values_list('termination_a_id', flat=True)[:3]
+        interface_ids = CableTermination.objects.filter(
+            cable__in=Cable.objects.all()[:3],
+            cable_end='A'
+        ).values_list('termination_id', flat=True)
         params = {
             'termination_a_type': 'dcim.interface',
             'termination_a_id': list(interface_ids),

+ 4 - 6
netbox/dcim/tests/test_models.py

@@ -501,12 +501,10 @@ class CableTestCase(TestCase):
         """
         When a new Cable is created, it must be cached on either termination point.
         """
-        interface1 = Interface.objects.get(pk=self.interface1.pk)
-        interface2 = Interface.objects.get(pk=self.interface2.pk)
-        self.assertEqual(self.cable.termination_a, interface1)
-        self.assertEqual(interface1._link_peer, interface2)
-        self.assertEqual(self.cable.termination_b, interface2)
-        self.assertEqual(interface2._link_peer, interface1)
+        self.interface1.refresh_from_db()
+        self.interface2.refresh_from_db()
+        self.assertEqual(self.interface1._link_peer, self.interface2)
+        self.assertEqual(self.interface2._link_peer, self.interface1)
 
     def test_cable_deletion(self):
         """

+ 2 - 2
netbox/dcim/views.py

@@ -2883,14 +2883,14 @@ class CableBulkImportView(generic.BulkImportView):
 
 
 class CableBulkEditView(generic.BulkEditView):
-    queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
+    queryset = Cable.objects.prefetch_related('terminations')
     filterset = filtersets.CableFilterSet
     table = tables.CableTable
     form = forms.CableBulkEditForm
 
 
 class CableBulkDeleteView(generic.BulkDeleteView):
-    queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
+    queryset = Cable.objects.prefetch_related('terminations')
     filterset = filtersets.CableFilterSet
     table = tables.CableTable