From 8df53eac913428b63e7211c0beb1ab50ff70167d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 Jan 2020 16:38:14 -0500 Subject: [PATCH] Add tests for dynamic choices --- netbox/dcim/tests/test_api.py | 8 ++++++-- netbox/extras/tests/test_api.py | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 2aa087043..dd0a6511f 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -30,8 +30,12 @@ class ChoicesTest(APITestCase): # Cable self.assertEqual(choices_to_dict(response.data.get('cable:length_unit')), CableLengthUnitChoices.as_dict()) self.assertEqual(choices_to_dict(response.data.get('cable:status')), CableStatusChoices.as_dict()) - # self.assertEqual(choices_to_dict(response.data.get('cable:termination_a_type')), ) - # self.assertEqual(choices_to_dict(response.data.get('cable:termination_b_type')), ) + content_types = ContentType.objects.filter(model__in=CABLE_TERMINATION_TYPES) + cable_termination_choices = { + "{}.{}".format(ct.app_label, ct.model): ct.name for ct in content_types + } + self.assertEqual(choices_to_dict(response.data.get('cable:termination_a_type')), cable_termination_choices) + self.assertEqual(choices_to_dict(response.data.get('cable:termination_b_type')), cable_termination_choices) self.assertEqual(choices_to_dict(response.data.get('cable:type')), CableTypeChoices.as_dict()) # Console ports diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index aff1761c6..893d7d25c 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -8,10 +8,12 @@ from rest_framework import status from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Platform, Rack, RackGroup, RackRole, Region, Site from extras.api.views import ScriptViewSet from extras.choices import * +from extras.constants import GRAPH_MODELS from extras.models import ConfigContext, Graph, ExportTemplate, Tag from extras.scripts import BooleanVar, IntegerVar, Script, StringVar from tenancy.models import Tenant, TenantGroup from utilities.testing import APITestCase, choices_to_dict +from utilities.utils import model_names_to_filter_dict class ChoicesTest(APITestCase): @@ -27,7 +29,11 @@ class ChoicesTest(APITestCase): self.assertEqual(choices_to_dict(response.data.get('export-template:template_language')), ExportTemplateLanguageChoices.as_dict()) # Graph - # self.assertEqual(choices_to_dict(response.data.get('graph:type')), ) + content_types = ContentType.objects.filter(**model_names_to_filter_dict(GRAPH_MODELS)) + graph_type_choices = { + "{}.{}".format(ct.app_label, ct.model): ct.name for ct in content_types + } + self.assertEqual(choices_to_dict(response.data.get('graph:type')), graph_type_choices) self.assertEqual(choices_to_dict(response.data.get('graph:template_language')), ExportTemplateLanguageChoices.as_dict()) # ObjectChange