diff --git a/styleguide_example/common/tests/utils/__init__.py b/styleguide_example/api/tests/utils/__init__.py similarity index 100% rename from styleguide_example/common/tests/utils/__init__.py rename to styleguide_example/api/tests/utils/__init__.py diff --git a/styleguide_example/common/tests/utils/test_inline_serializer.py b/styleguide_example/api/tests/utils/test_inline_serializer.py similarity index 94% rename from styleguide_example/common/tests/utils/test_inline_serializer.py rename to styleguide_example/api/tests/utils/test_inline_serializer.py index d00f9cbf..3723e97c 100644 --- a/styleguide_example/common/tests/utils/test_inline_serializer.py +++ b/styleguide_example/api/tests/utils/test_inline_serializer.py @@ -3,7 +3,8 @@ from rest_framework import serializers -from styleguide_example.common.utils import inline_serializer, make_mock_object +from styleguide_example.api.utils import inline_serializer +from styleguide_example.common.utils import make_mock_object class InlineSerializerTests(unittest.TestCase): diff --git a/styleguide_example/api/utils.py b/styleguide_example/api/utils.py index b33ca99c..4feb38ed 100644 --- a/styleguide_example/api/utils.py +++ b/styleguide_example/api/utils.py @@ -6,6 +6,10 @@ def create_serializer_class(name, fields): def inline_serializer(*, fields, data=None, **kwargs): + # Important note if you are using `drf-spectacular` + # Please refer to the following issue: + # https://github.com/HackSoftware/Django-Styleguide/issues/105#issuecomment-1669468898 + # Since you might need to use unique names (uuids) for each inline serializer serializer_class = create_serializer_class(name="inline_serializer", fields=fields) if data is not None: diff --git a/styleguide_example/common/utils.py b/styleguide_example/common/utils.py index 113e3b00..2e55e5e0 100644 --- a/styleguide_example/common/utils.py +++ b/styleguide_example/common/utils.py @@ -2,7 +2,6 @@ from django.core.exceptions import ImproperlyConfigured from django.http import Http404 from django.shortcuts import get_object_or_404 -from rest_framework import serializers def make_mock_object(**kwargs): @@ -20,19 +19,6 @@ def get_object(model_or_queryset, **kwargs): return None -def create_serializer_class(name, fields): - return type(name, (serializers.Serializer,), fields) - - -def inline_serializer(*, fields, data=None, **kwargs): - serializer_class = create_serializer_class(name="", fields=fields) - - if data is not None: - return serializer_class(data=data, **kwargs) - - return serializer_class(**kwargs) - - def assert_settings(required_settings, error_message_prefix=""): """ Checks if each item from `required_settings` is present in Django settings