mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-10-20 04:13:16 +00:00
Unpacker: add tell() (#227)
This commit is contained in:
parent
3388e4a6ee
commit
a8d9162ca6
3 changed files with 32 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
|||
|
||||
import io
|
||||
from msgpack import Unpacker, BufferFull
|
||||
from msgpack import pack
|
||||
from msgpack.exceptions import OutOfData
|
||||
from pytest import raises
|
||||
|
||||
|
@ -96,3 +97,22 @@ def test_issue124():
|
|||
unpacker.feed(b"!")
|
||||
assert tuple(unpacker) == (b'!',)
|
||||
assert tuple(unpacker) == ()
|
||||
|
||||
|
||||
def test_unpack_tell():
|
||||
stream = io.BytesIO()
|
||||
messages = [2**i-1 for i in range(65)]
|
||||
messages += [-(2**i) for i in range(1, 64)]
|
||||
messages += [b'hello', b'hello'*1000, list(range(20)),
|
||||
{i: bytes(i)*i for i in range(10)},
|
||||
{i: bytes(i)*i for i in range(32)}]
|
||||
offsets = []
|
||||
for m in messages:
|
||||
pack(m, stream)
|
||||
offsets.append(stream.tell())
|
||||
stream.seek(0)
|
||||
unpacker = Unpacker(stream)
|
||||
for m, o in zip(messages, offsets):
|
||||
m2 = next(unpacker)
|
||||
assert m == m2
|
||||
assert o == unpacker.tell()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue