From ec89a9b10699cda0bf64bb736e5435520a24de8d Mon Sep 17 00:00:00 2001 From: gellis713 Date: Wed, 9 Oct 2024 09:30:40 -0500 Subject: [PATCH] Fix parsing of extra_choices (#17691) * Align strawberry resolver with expected return type * Align test data with expected representation of extra_choices in CustomFieldChoiceSet model --------- Co-authored-by: Griffin Ellis --- netbox/extras/graphql/types.py | 2 +- netbox/extras/tests/test_api.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/netbox/extras/graphql/types.py b/netbox/extras/graphql/types.py index a43f80cc3..a53c7bed3 100644 --- a/netbox/extras/graphql/types.py +++ b/netbox/extras/graphql/types.py @@ -84,7 +84,7 @@ class CustomFieldType(ObjectType): class CustomFieldChoiceSetType(ObjectType): choices_for: List[Annotated["CustomFieldType", strawberry.lazy('extras.graphql.types')]] - extra_choices: List[str] | None + extra_choices: List[List[str]] | None @strawberry_django.type( diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index 5defbd0bd..acd94d009 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -244,9 +244,18 @@ class CustomFieldChoiceSetTest(APIViewTestCases.APIViewTestCase): @classmethod def setUpTestData(cls): choice_sets = ( - CustomFieldChoiceSet(name='Choice Set 1', extra_choices=['1A', '1B', '1C', '1D', '1E']), - CustomFieldChoiceSet(name='Choice Set 2', extra_choices=['2A', '2B', '2C', '2D', '2E']), - CustomFieldChoiceSet(name='Choice Set 3', extra_choices=['3A', '3B', '3C', '3D', '3E']), + CustomFieldChoiceSet( + name='Choice Set 1', + extra_choices=[['1A', '1A'], ['1B', '1B'], ['1C', '1C'], ['1D', '1D'], ['1E', '1E']], + ), + CustomFieldChoiceSet( + name='Choice Set 2', + extra_choices=[['2A', '2A'], ['2B', '2B'], ['2C', '2C'], ['2D', '2D'], ['2E', '2E']], + ), + CustomFieldChoiceSet( + name='Choice Set 3', + extra_choices=[['3A', '3A'], ['3B', '3B'], ['3C', '3C'], ['3D', '3D'], ['3E', '3E']], + ), ) CustomFieldChoiceSet.objects.bulk_create(choice_sets)