/ / Django Rest Framework Camel Case - Pruebas que no usan analizador - django, django-rest-framework

Django Rest Framework Camel Case - Pruebas que no usan analizador - django, django-rest-framework

Tengo una API REST simple en Django usandorest_framework. Agregué el plugin djangorestframework-camel-case y actualicé mi configuración REST_FRAMEWORK y la API REST da como resultado el camelCase adecuado. Sin embargo, cuando pruebo usando unittest (python manage.py test app.test), los resultados están en snake_case en lugar de camelCase y hacen que mis afirmaciones fallen.

Utilizando este tenedor: 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",
}

¿Necesito agregar alguna configuración adicional? ¿Es este un error en djangorestframework? En djangorestframework-camel-case?

Respuestas

1 para la respuesta № 1

El problema podría estar en su archivo de prueba.

Digamos que tienes en tus pruebas algo entre las líneas de:

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

El objeto de respuesta tendrá una data parámetro que será snake_case, y un content que será camelCase.

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

Asegúrese de que está ejecutando sus aserciones contra el parámetro de respuesta correcto.