/ / Django Rest Framework Camel Case - Testen ohne Parser - Django, Django-Rest-Framework

Django Rest Framework Camel Case - Testen ohne Parser - django, django-rest-framework

Ich habe eine einfache REST-API in Djangorest_framework. Ich habe das djangorestframework-camel-case-Plugin hinzugefügt und meine REST_FRAMEWORK-Konfiguration und die REST-API-Ausgaben für camelCase aktualisiert. Wenn ich jedoch das Testgerät einsittest (python manage.py test app.test), die Ergebnisse sind in snake_case anstelle von camelCase und führen dazu, dass meine Assertions fehlschlagen.

Verwendung dieser Gabel: 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",
}

Muss ich eine zusätzliche Konfiguration hinzufügen? Ist das ein Fehler in Djangorestframework? Im Djangorestframework-Kamel-Fall?

Antworten:

1 für die Antwort № 1

Das Problem liegt möglicherweise in Ihrer Testdatei.

Angenommen, Sie haben in Ihren Tests etwas zwischen den Zeilen:

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

Das Antwortobjekt hat eine data Parameter, der snake_case ist, und a content das wird camelCase sein.

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

Stellen Sie sicher, dass Sie Ihre Assertions mit dem richtigen Antwortparameter ausführen.