From dfaa3541401731022fb1957cc71db0726876e775 Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Thu, 31 Oct 2024 09:31:24 -0400 Subject: [PATCH] Fix tests on single-object forms --- netbox/dcim/forms/model_forms.py | 8 ++++++++ netbox/extras/tests/test_filtersets.py | 1 + netbox/virtualization/forms/model_forms.py | 10 +++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/forms/model_forms.py b/netbox/dcim/forms/model_forms.py index 5bd03f791..4545d3fde 100644 --- a/netbox/dcim/forms/model_forms.py +++ b/netbox/dcim/forms/model_forms.py @@ -1538,6 +1538,14 @@ class InterfaceForm(InterfaceCommonForm, ModularDeviceComponentForm): 'mode': '802.1Q Mode', } + def clean_mac_address(self): + return MACAddress.objects.create(mac_address=self.cleaned_data['mac_address']) + + def save(self, commit=True): + result = super().save(commit=commit) + self.instance.mac_addresses.add(self.cleaned_data['mac_address']) + return result + class FrontPortForm(ModularDeviceComponentForm): rear_port = DynamicModelChoiceField( diff --git a/netbox/extras/tests/test_filtersets.py b/netbox/extras/tests/test_filtersets.py index c9eaa3e0e..b3d576cb9 100644 --- a/netbox/extras/tests/test_filtersets.py +++ b/netbox/extras/tests/test_filtersets.py @@ -1135,6 +1135,7 @@ class TagTestCase(TestCase, ChangeLoggedFilterSetTests): 'l2vpn', 'l2vpntermination', 'location', + 'macaddress', 'manufacturer', 'module', 'modulebay', diff --git a/netbox/virtualization/forms/model_forms.py b/netbox/virtualization/forms/model_forms.py index 5971fc894..fce5eeda7 100644 --- a/netbox/virtualization/forms/model_forms.py +++ b/netbox/virtualization/forms/model_forms.py @@ -4,7 +4,7 @@ from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ from dcim.forms.common import InterfaceCommonForm -from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site, SiteGroup +from dcim.models import Device, DeviceRole, MACAddress, Platform, Rack, Region, Site, SiteGroup from extras.models import ConfigTemplate from ipam.models import IPAddress, VLAN, VLANGroup, VLANTranslationPolicy, VRF from netbox.forms import NetBoxModelForm @@ -370,6 +370,14 @@ class VMInterfaceForm(InterfaceCommonForm, VMComponentForm): 'mode': HTMXSelect(), } + def clean_mac_address(self): + return MACAddress.objects.create(mac_address=self.cleaned_data['mac_address']) + + def save(self, commit=True): + result = super().save(commit=commit) + self.instance.mac_addresses.add(self.cleaned_data['mac_address']) + return result + class VirtualDiskForm(VMComponentForm):