如何在django单元测试中发送格式错误的数据(django REST框架)

时间:2016-06-14 04:30:50

标签: django django-rest-framework

我试图在DRF中编写单元测试,以便将格式错误的json发布到客户端。但是,由于client.post需要一个python dict,它序列化为json字符串,如何发送格式错误的json字符串来测试响应?

 def test_create_resource_malformed_data(self):
      """ Send malformed data """
      malformed_data = '{"malformed":"json"}'
      test_response = self.client.post(self.url_create, malformed_data, format="json")

相关追溯:

File "/anaconda/lib/python3.4/site-packages/rest_framework/test.py", line 66, in _encode_data
ret = renderer.render(data)
File "/anaconda/lib/python3.4/site-packages/rest_framework/renderers.py", line 160, in render
view = renderer_context['view']
KeyError: 'view'

1 个答案:

答案 0 :(得分:2)

来自documentation for Client(其余框架APIClient扩展Django' s Client):

  

如果您提供content_type(例如text/xml表示XML有效负载),则数据内容将在POST请求中按原样发送,使用{{1在HTTP Content-Type标头中。

所以你可以这样做:

content_type