implement unpack_one also for the cython version, and add a test for it

This commit is contained in:
Antonio Cuni 2013-10-19 01:49:03 +02:00
parent a7485eccb2
commit ff858387d3
2 changed files with 32 additions and 1 deletions

View file

@ -1,9 +1,10 @@
#!/usr/bin/env python
# coding: utf-8
import py
import six
from msgpack import Unpacker, BufferFull
from msgpack.exceptions import OutOfData
from msgpack.exceptions import OutOfData, ExtraData, UnpackValueError
from pytest import raises
@ -85,3 +86,15 @@ def test_readbytes():
assert unpacker.unpack() == ord(b'a')
assert unpacker.unpack() == ord(b'r')
def test_unpack_one():
unpacker = Unpacker()
unpacker.feed('\xda\x00\x03abc')
assert unpacker.unpack_one() == 'abc'
#
unpacker = Unpacker()
unpacker.feed('\xda\x00\x03abcd')
py.test.raises(ExtraData, "unpacker.unpack_one()")
#
unpacker = Unpacker()
unpacker.feed('\xda\x00\x03ab')
py.test.raises(UnpackValueError, "unpacker.unpack_one()")