简体   繁体   中英

msgpack.unpackb in Falcon

I try to learn and deploy sampel code for falcon tutorial in readthedocs . in this section when testing app by pytest tests get 1 failed with this title:

E msgpack.exceptions.ExtraData: unpack(b) received extra data.

how to solve this problem?

pytest output:

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 and test_app.py are exactly the code in the tutorial without any changes.

In the previous step they changed the response type to MessagePack. If you kept JSON as a response type, this may be your problem.

To solve replace

result_doc = msgpack.unpackb(response.content, raw=False)

by

result_doc = json.loads(response.content)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM