【发布时间】:2013-02-15 16:15:53
【问题描述】:
我将 django-rest-framework(最新)用于 REST API,并使用内置测试客户端在 django 中实现了一些测试用例。
以下 django 测试用例在 django 版本
self.client.put('/core/accounts/%s/'% self.account.id,
data = prepare_dict(self.account),
HTTP_AUTHORIZATION=self.token)
升级到 django 1.5,所有测试都通过了,除了与 HTTP PUT 相关的测试 在调查问题时发现这个@https://docs.djangoproject.com/en/dev/releases/1.5/#options-put-and-delete-requests-in-the-test-client
如果您在 PUT 请求中使用 data 参数而没有 content_type,您必须在将数据传递给测试之前对其进行编码 客户端并设置 content_type 参数。
因此,更新了我的测试以反映此更改并尝试遵循,但仍然获得 http 415 而不是 http 200
from django.test.client import MULTIPART_CONTENT, BOUNDARY, encode_multipart
self.client.put('/core/accounts/%s/'% self.account.id,
data = encode_multipart(BOUNDARY, prepare_dict(self.account)),
content_type=MULTIPART_CONTENT,
HTTP_AUTHORIZATION=self.token)
知道我错过了什么吗? P.S:django-rest-framework 内置 Web UI 的所有功能都可以正常工作
【问题讨论】:
标签: django django-rest-framework