Просмотр исходного кода

Add wireless_lans to InterfaceSerializer; extend tests

jeremystretch 4 лет назад
Родитель
Сommit
96cde7d4af
3 измененных файлов с 28 добавлено и 2 удалено
  1. 9 2
      netbox/dcim/api/serializers.py
  2. 10 0
      netbox/dcim/tests/test_api.py
  3. 9 0
      netbox/dcim/tests/test_views.py

+ 9 - 2
netbox/dcim/api/serializers.py

@@ -17,8 +17,9 @@ from tenancy.api.nested_serializers import NestedTenantSerializer
 from users.api.nested_serializers import NestedUserSerializer
 from utilities.api import get_serializer_for_model
 from virtualization.api.nested_serializers import NestedClusterSerializer
-from wireless.api.nested_serializers import NestedWirelessLinkSerializer
+from wireless.api.nested_serializers import NestedWirelessLANSerializer, NestedWirelessLinkSerializer
 from wireless.choices import *
+from wireless.models import WirelessLAN
 from .nested_serializers import *
 
 
@@ -628,6 +629,12 @@ class InterfaceSerializer(PrimaryModelSerializer, LinkTerminationSerializer, Con
     )
     cable = NestedCableSerializer(read_only=True)
     wireless_link = NestedWirelessLinkSerializer(read_only=True)
+    wireless_lans = SerializedPKRelatedField(
+        queryset=WirelessLAN.objects.all(),
+        serializer=NestedWirelessLANSerializer,
+        required=False,
+        many=True
+    )
     count_ipaddresses = serializers.IntegerField(read_only=True)
 
     class Meta:
@@ -636,7 +643,7 @@ class InterfaceSerializer(PrimaryModelSerializer, LinkTerminationSerializer, Con
             'id', 'url', 'display', 'device', 'name', 'label', 'type', 'enabled', 'parent', 'bridge', 'lag', 'mtu',
             'mac_address', 'wwn', 'mgmt_only', 'description', 'mode', 'rf_role', 'rf_channel', 'rf_channel_frequency',
             'rf_channel_width', 'tx_power', 'untagged_vlan', 'tagged_vlans', 'mark_connected', 'cable', 'wireless_link',
-            'link_peer', 'link_peer_type', 'connected_endpoint', 'connected_endpoint_type',
+            'link_peer', 'link_peer_type', 'wireless_lans', 'connected_endpoint', 'connected_endpoint_type',
             'connected_endpoint_reachable', 'tags', 'custom_fields', 'created', 'last_updated', 'count_ipaddresses',
             '_occupied',
         ]

+ 10 - 0
netbox/dcim/tests/test_api.py

@@ -9,6 +9,7 @@ from dcim.models import *
 from ipam.models import ASN, RIR, VLAN
 from utilities.testing import APITestCase, APIViewTestCases
 from virtualization.models import Cluster, ClusterType
+from wireless.models import WirelessLAN
 
 
 class AppTest(APITestCase):
@@ -1202,6 +1203,12 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
         )
         VLAN.objects.bulk_create(vlans)
 
+        wireless_lans = (
+            WirelessLAN(ssid='WLAN1'),
+            WirelessLAN(ssid='WLAN2'),
+        )
+        WirelessLAN.objects.bulk_create(wireless_lans)
+
         cls.create_data = [
             {
                 'device': device.pk,
@@ -1211,6 +1218,7 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
                 'tx_power': 10,
                 'tagged_vlans': [vlans[0].pk, vlans[1].pk],
                 'untagged_vlan': vlans[2].pk,
+                'wireless_lans': [wireless_lans[0].pk, wireless_lans[1].pk],
             },
             {
                 'device': device.pk,
@@ -1221,6 +1229,7 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
                 'tx_power': 10,
                 'tagged_vlans': [vlans[0].pk, vlans[1].pk],
                 'untagged_vlan': vlans[2].pk,
+                'wireless_lans': [wireless_lans[0].pk, wireless_lans[1].pk],
             },
             {
                 'device': device.pk,
@@ -1231,6 +1240,7 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
                 'tx_power': 10,
                 'tagged_vlans': [vlans[0].pk, vlans[1].pk],
                 'untagged_vlan': vlans[2].pk,
+                'wireless_lans': [wireless_lans[0].pk, wireless_lans[1].pk],
             },
         ]
 

+ 9 - 0
netbox/dcim/tests/test_views.py

@@ -14,6 +14,7 @@ from dcim.models import *
 from ipam.models import ASN, RIR, VLAN
 from tenancy.models import Tenant
 from utilities.testing import ViewTestCases, create_tags, create_test_device
+from wireless.models import WirelessLAN
 
 
 class RegionTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
@@ -1602,6 +1603,12 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
         )
         VLAN.objects.bulk_create(vlans)
 
+        wireless_lans = (
+            WirelessLAN(ssid='WLAN1'),
+            WirelessLAN(ssid='WLAN2'),
+        )
+        WirelessLAN.objects.bulk_create(wireless_lans)
+
         tags = create_tags('Alpha', 'Bravo', 'Charlie')
 
         cls.form_data = {
@@ -1620,6 +1627,7 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
             'tx_power': 10,
             'untagged_vlan': vlans[0].pk,
             'tagged_vlans': [v.pk for v in vlans[1:4]],
+            'wireless_lans': [wireless_lans[0].pk, wireless_lans[1].pk],
             'tags': [t.pk for t in tags],
         }
 
@@ -1638,6 +1646,7 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
             'mode': InterfaceModeChoices.MODE_TAGGED,
             'untagged_vlan': vlans[0].pk,
             'tagged_vlans': [v.pk for v in vlans[1:4]],
+            'wireless_lans': [wireless_lans[0].pk, wireless_lans[1].pk],
             'tags': [t.pk for t in tags],
         }