Python Django测试-如何使用JSON发送HTTP Post多部分
在django测试中,我想发送一个HTTP Post多部分,其中包含2个参数:Python Django测试-如何使用JSON发送HTTP Post多部分,python,django,http,testing,post,Python,Django,Http,Testing,Post,在django测试中,我想发送一个HTTP Post多部分,其中包含2个参数: JSON字符串 档案 def测试上传请求(self): temp_file=tempfile.NamedTemporaryFile(delete=False).name 打开(临时文件)作为f: 文件格式={ “文件”:f } my_json=json.dumps({ “名单”:{ “名称”:“测试名称”, “说明”:“测试说明” } }) response=self.client.post(反向('api:up
- JSON字符串
- 档案
def测试上传请求(self):
temp_file=tempfile.NamedTemporaryFile(delete=False).name
打开(临时文件)作为f:
文件格式={
“文件”:f
}
my_json=json.dumps({
“名单”:{
“名称”:“测试名称”,
“说明”:“测试说明”
}
})
response=self.client.post(反向('api:upload'),
我的儿子,
内容=文件形式,
content_type=“application/json”)
删除操作系统(临时文件)
def上传(请求):
打印请求.FILES['file']
打印json.loads(request.body)
我的代码不起作用。有什么帮助吗?
如果需要,我可以使用外部python库(我正在尝试使用请求)
谢谢使用
应用程序/json
内容类型,您无法上载文件
请尝试以下操作:
视图:
测试:
def upload(request):
print request.FILES['file']
print json.loads(request.POST['json'])
return HttpResponse('OK')
def test_upload_request(self):
with tempfile.NamedTemporaryFile() as f:
my_json = json.dumps({
"list": {
"name": "test name",
"description": "test description"
}
})
form = {
"file": f,
"json": my_json,
}
response = self.client.post(reverse('api:upload'),
data=form)
self.assertEqual(response.status_code, 200)