/ Camel Case do Django Rest Framework - Testando não usando o analisador - django, django-rest-framework

Caso do Django Rest Framework Camel - Testando não usando parser - django, django-rest-framework

Eu tenho uma API REST simples no Django usandorest_framework. Adicionei o plug-in djangorestframework-camel-case e atualizei minha configuração REST_FRAMEWORK e a API REST produz o camelCase adequado. No entanto, quando eu teste usando o unittest (python manage.py test app.test), os resultados estão em snake_case em vez de camelCase e fazem com que minhas afirmações falhem.

Usando este garfo: 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",
}

Preciso adicionar alguma configuração adicional? Isso é um bug no djangorestframework? Em djangorestframework-camel-case?

Respostas:

1 para resposta № 1

O problema pode estar no seu arquivo de teste.

Digamos que você tenha em seus testes algo entre as linhas de:

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

O objeto de resposta terá um data parâmetro que será snake_case e um content que será camelCase.

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

Verifique se você está executando suas asserções no parâmetro de resposta correto.