diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index ec7b18839..bcc95467a 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -11,7 +11,7 @@ from rq import Worker from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Rack, RackGroup, RackRole, Site from extras.api.views import ReportViewSet, ScriptViewSet -from extras.models import ConfigContext, ExportTemplate, ImageAttachment, Tag +from extras.models import ConfigContext, CustomField, ExportTemplate, ImageAttachment, Tag from extras.reports import Report from extras.scripts import BooleanVar, IntegerVar, Script, StringVar from utilities.testing import APITestCase, APIViewTestCases @@ -30,6 +30,53 @@ class AppTest(APITestCase): self.assertEqual(response.status_code, 200) +class CustomFieldTest(APIViewTestCases.APIViewTestCase): + model = CustomField + brief_fields = ['id', 'name', 'url'] + create_data = [ + { + 'content_types': ['dcim.site'], + 'name': 'cf4', + 'type': 'date', + }, + { + 'content_types': ['dcim.site'], + 'name': 'cf5', + 'type': 'url', + }, + { + 'content_types': ['dcim.site'], + 'name': 'cf6', + 'type': 'select', + }, + ] + bulk_update_data = { + 'description': 'New description', + } + + @classmethod + def setUpTestData(cls): + site_ct = ContentType.objects.get_for_model(Site) + + custom_fields = ( + CustomField( + name='cf1', + type='text' + ), + CustomField( + name='cf2', + type='integer' + ), + CustomField( + name='cf3', + type='boolean' + ), + ) + CustomField.objects.bulk_create(custom_fields) + for cf in custom_fields: + cf.content_types.add(site_ct) + + class ExportTemplateTest(APIViewTestCases.APIViewTestCase): model = ExportTemplate brief_fields = ['id', 'name', 'url']