summaryrefslogtreecommitdiff
path: root/test/test_unpack_raw.py
blob: ed2e04b958983fd34eec5e51faae524b716b5a10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""Tests for cases where the user seeks to obtain packed msgpack objects"""

from nose import main
from nose.tools import *
import six
from msgpack import Unpacker, packb

def test_write_bytes():
    unpacker = Unpacker()
    unpacker.feed(b'abc')
    f = six.BytesIO()
    assert_equal(unpacker.unpack(f.write), ord('a'))
    assert_equal(f.getvalue(), b'a')
    f.truncate(0)
    assert_is_none(unpacker.skip(f.write))
    assert_equal(f.getvalue(), b'b')
    f.truncate(0)
    assert_is_none(unpacker.skip())
    assert_equal(f.getvalue(), b'')

def test_write_bytes_multi_buffer():
    long_val = (5) * 100
    expected = packb(long_val)
    unpacker = Unpacker(six.BytesIO(expected), read_size=3, max_buffer_size=3)

    f = six.BytesIO()
    unpacked = unpacker.unpack(f.write)
    assert_equal(unpacked, long_val)
    assert_equal(f.getvalue(), expected)

if __name__ == '__main__':
    main()