我尝试在readthedocs中学习和部署falcon教程的sampel代码。在本节中,当pytest tests
测试应用程序时,get1失败,标题为:
E msgpack.exceptions.ExtraData:unpack(b(收到额外数据。
如何解决此问题?
pytest输出:
tests/test_app.py F [100%]
=================================== FAILURES ===================================
_______________________________ test_list_images _______________________________
client = <falcon.testing.client.TestClient object at 0x7f2cceed5490>
def test_list_images(client):
doc = {
'images': [
{
'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png'
}
]
}
response = client.simulate_get('/images')
> result_doc = msgpack.unpackb(response.content, raw=False)
tests/test_app.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E msgpack.exceptions.ExtraData: unpack(b) received extra data.
msgpack/_unpacker.pyx:209: ExtraData
============================== 1 failed in 0.15s ===============================
app.py、images.py和test_app.py正是教程中的代码,没有任何更改
在上一步中,他们将响应类型更改为MessagePack。如果您保留JSON作为响应类型,这可能是您的问题。
解决更换
result_doc = msgpack.unpackb(response.content, raw=False)
通过
result_doc = json.loads(response.content)