gpt4 book ai didi

Django Rest Framework Camel Case - 不使用解析器进行测试

转载 作者:行者123 更新时间:2023-12-01 00:33:19 28 4
gpt4 key购买 nike

我在 Django 中使用 rest_framework 有一个简单的 REST API。我添加了 djangorestframework-camel-case 插件并更新了我的 REST_FRAMEWORK 配置和 REST API 输出正确的驼峰案例。但是,当我使用 unittest ( python manage.py test app.test ) 进行测试时,结果以 snake_case 而不是 camelCase 形式显示,并导致我的断言失败。

使用这个 fork :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',
}

我需要添加一些额外的配置吗?这是 djangorestframework 中的错误吗?在 djangorestframework-camel-case 中?

最佳答案

问题可能出在您的测试文件中。

假设您在测试中包含以下内容:

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

响应对象将有一个 data参数是snake_case,还有一个content这将是驼峰式。

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

确保针对正确的响应参数运行断言。

关于Django Rest Framework Camel Case - 不使用解析器进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43125089/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com