From b4e8a3101a759d4fd587c57a0ae3df0491e14885 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 18 Jul 2024 16:38:15 -0400 Subject: [PATCH] Fix tests --- netbox/extras/models/models.py | 3 ++- netbox/extras/tests/test_views.py | 4 ++-- netbox/utilities/testing/base.py | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/netbox/extras/models/models.py b/netbox/extras/models/models.py index efc4eff5f..19b153e94 100644 --- a/netbox/extras/models/models.py +++ b/netbox/extras/models/models.py @@ -18,6 +18,7 @@ from extras.conditions import ConditionSet from extras.constants import * from extras.utils import image_upload from netbox.config import get_config +from netbox.events import get_event_type_choices from netbox.models import ChangeLoggedModel from netbox.models.features import ( CloningMixin, CustomFieldsMixin, CustomLinksMixin, ExportTemplatesMixin, SyncedDataMixin, TagsMixin, @@ -62,7 +63,7 @@ class EventRule(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, ChangeLogged blank=True ) event_types = ArrayField( - base_field=models.CharField(max_length=50), + base_field=models.CharField(max_length=50, choices=get_event_type_choices), help_text=_("The types of event which will trigger this rule.") ) enabled = models.BooleanField( diff --git a/netbox/extras/tests/test_views.py b/netbox/extras/tests/test_views.py index 6e9cd1c29..796d36180 100644 --- a/netbox/extras/tests/test_views.py +++ b/netbox/extras/tests/test_views.py @@ -407,7 +407,7 @@ class EventRulesTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.form_data = { 'name': 'Event X', 'object_types': [site_type.pk], - 'event_types': ','.join([OBJECT_UPDATED, OBJECT_DELETED]), + 'event_types': [OBJECT_UPDATED, OBJECT_DELETED], 'conditions': None, 'action_type': 'webhook', 'action_object_type': webhook_ct.pk, @@ -418,7 +418,7 @@ class EventRulesTestCase(ViewTestCases.PrimaryObjectViewTestCase): cls.csv_data = ( f'name,object_types,event_types,action_type,action_object', - f'Webhook 4,dcim.site,"{OBJECT_CREATED}",webhook,Webhook 1', + f'Webhook 4,dcim.site,"{OBJECT_CREATED},{OBJECT_UPDATED}",webhook,Webhook 1', ) cls.csv_update_data = ( diff --git a/netbox/utilities/testing/base.py b/netbox/utilities/testing/base.py index eb45aa784..cb69457a2 100644 --- a/netbox/utilities/testing/base.py +++ b/netbox/utilities/testing/base.py @@ -137,7 +137,10 @@ class ModelTestCase(TestCase): # Convert ArrayFields to CSV strings if type(field) is ArrayField: - if type(field.base_field) is ArrayField: + if getattr(field.base_field, 'choices', None): + # Values for fields with pre-defined choices can be returned as lists + model_dict[key] = value + elif type(field.base_field) is ArrayField: # Handle nested arrays (e.g. choice sets) model_dict[key] = '\n'.join([f'{k},{v}' for k, v in value]) elif issubclass(type(field.base_field), RangeField):