Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从请求读取后无法访问正文';启动py.test后的s数据流_Python_Django_Http Post_Django Rest Framework_Pytest - Fatal编程技术网

Python 从请求读取后无法访问正文';启动py.test后的s数据流

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测试基于django rest框架的api。我有以下创建新对象的方法(方法取自):

我在下一次测试中写到:

@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