我正在使用django rest framework(最新版本)for rest API,并使用内置测试客户端在django中实现了几个测试用例.
以下Django测试用例在Django版本<;1.5中运行良好
self.client.put('/core/accounts/%s/'% self.account.id,
data = prepare_dict(self.account),
HTTP_AUTHORIZATION=self.token)
升级至django 1.5,除HTTP PUT相关测试外,所有测试均通过
如果您在PUT请求中使用DATA参数而没有 CONTENT_TYPE,则必须在将数据传递给测试之前对其进行编码 客户端,并设置CONTENT_TYPE参数.
因此,更新了我的测试以反映此更改,并try 跟随,但仍然得到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)
知道我错过了什么吗? 附言:django-睡觉-框架内置的web UI中的所有功能都工作得很好