/ / Django Rest Framework Camel Case - Testowanie bez użycia parsera - django, django-rest-framework

Django Rest Framework Camel Case - Testowanie bez użycia parsera - django, django-rest-framework

Mam prosty interfejs API REST w Djangorest_framework. Dodałem wtyczkę djangorestframework-camel-case i zaktualizowałem moją konfigurację REST_FRAMEWORK, a interfejs API REST generuje poprawną camelCase. Jednak gdy testuję przy użyciu unittest (python manage.py test app.test), wyniki są zapisane w snake_case zamiast camelCase i powodują, że moje twierdzenia zawodzą.

Za pomocą tego widelca: https://github.com/rense/djangorestframework-camel-case

REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES": (
"rest_framework.permissions.DjangoModelPermissions",
),
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework.authentication.SessionAuthentication",
"rest_framework.authentication.TokenAuthentication",
),
"DEFAULT_FILTER_BACKENDS": ("rest_framework.filters.DjangoFilterBackend", "rest_framework.filters.OrderingFilter"),
"DEFAULT_RENDERER_CLASSES": ("djangorestframework_camel_case.render.CamelCaseJSONRenderer",),
"DEFAULT_PARSER_CLASSES": ("djangorestframework_camel_case.parser.CamelCaseJSONParser",),
"TEST_REQUEST_RENDERER_CLASSES": ("djangorestframework_camel_case.render.CamelCaseJSONRenderer",),
"TEST_REQUEST_PARSER_CLASSES": ("djangorestframework_camel_case.parser.CamelCaseJSONParser",),
"TEST_REQUEST_DEFAULT_FORMAT": "json",
}

Czy muszę dodać dodatkową konfigurację? Czy to błąd w djangorestframework? W przypadku djangorestframework-camel-case?

Odpowiedzi:

1 dla odpowiedzi № 1

Problem może znajdować się w pliku testowym.

Powiedzmy, że masz w swoich testach coś z następujących linii:

client = APIClient() response = client.get("some_url", format="json")

Obiekt odpowiedzi będzie miał data parametr, który będzie snake_case, oraz a content który będzie camelCase.

response.data # will contain snake_case keys json.loads(response.content) # will contain camelCase keys

Upewnij się, że korzystasz z asercji względem właściwego parametru odpowiedzi.