Python 从请求读取后无法访问正文';启动py.test后的s数据流
下午好 我正在使用pytest测试基于django rest框架的api。我有以下创建新对象的方法(方法取自): 我在下一次测试中写到:Python 从请求读取后无法访问正文';启动py.test后的s数据流,python,django,http-post,django-rest-framework,pytest,Python,Django,Http Post,Django Rest Framework,Pytest,下午好 我正在使用pytest测试基于django rest框架的api。我有以下创建新对象的方法(方法取自): 我在下一次测试中写到: @pytest.mark.django_db def test_create_method(client): correct_data = '''{ "var1": "111", "var2": "222", "var3": 2 }''' clien
@pytest.mark.django_db
def test_create_method(client):
correct_data = '''{ "var1": "111",
"var2": "222",
"var3": 2 }'''
client.login(username='test2@github.com', password='test')
data = json.loads(correct_data)
response = client.post('/rest2/create_transaction/', data, format='json')
content = json.loads(response.content)
assert content[0]['var1'] == '111'
assert content[0]['var2'] == '222'
assert content[0]['var3'] == 2
assert response['Content-Type'] == 'application/json'
assert response.status_code == 201
启动pytest时会显示以下内容:异常:从请求的数据流读取后无法访问正文。当我把数据发布到url时,它就坏了。
当我在shell中运行相同的代码时,代码运行没有问题。我是测试新手,可能会错过一些东西,请帮助。如果您使用的是django rest框架,那么您可以直接使用request.data,而不是自己尝试从请求解析json
这可以替换为
data = request.data
在加载响应内容之前,您是否可以尝试进行内容类型
和状态
断言?另外,请提供一个完整的回溯。它不会改变任何东西,因为错误之前就出现了。回溯-我也有这个问题。我会尽力调查的。
stream = StringIO('[' + request.raw_post_data + ']')
data = JSONParser().parse(stream)
data = request.data