猎鹰中的msgpack.unpackb



我尝试在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)

最新更新