diff options
author | INADA Naoki <inada-n@klab.com> | 2014-02-17 04:07:16 +0900 |
---|---|---|
committer | INADA Naoki <inada-n@klab.com> | 2014-02-17 04:07:16 +0900 |
commit | eb3537ab5090c06dc64931bd3901c955330da901 (patch) | |
tree | 985ebc96505ea8f73bd1170e085e882aac2bc1a3 | |
parent | ff263dfee81b3c20de8e75f903a9ef82ba9e7de2 (diff) | |
parent | 518f886b111808d7d9f29b34c50baddb01610338 (diff) | |
download | msgpack-python-eb3537ab5090c06dc64931bd3901c955330da901.tar.gz |
Merge branch 'pr/82'
-rw-r--r-- | msgpack/fallback.py | 2 | ||||
-rw-r--r-- | test/test_buffer.py | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/msgpack/fallback.py b/msgpack/fallback.py index cf61023..55de72c 100644 --- a/msgpack/fallback.py +++ b/msgpack/fallback.py @@ -193,6 +193,8 @@ class Unpacker(object): def feed(self, next_bytes): if isinstance(next_bytes, array.array): next_bytes = next_bytes.tostring() + elif isinstance(next_bytes, bytearray): + next_bytes = bytes(next_bytes) assert self._fb_feeding if self._fb_buf_n + len(next_bytes) > self._max_buffer_size: raise BufferFull diff --git a/test/test_buffer.py b/test/test_buffer.py index 04cc02d..6cb2295 100644 --- a/test/test_buffer.py +++ b/test/test_buffer.py @@ -2,12 +2,20 @@ # coding: utf-8 from msgpack import packb, unpackb +import sys def test_unpack_buffer(): from array import array buf = array('b') - buf.fromstring(packb(('foo', 'bar'))) + buf.fromstring(packb((b'foo', b'bar'))) obj = unpackb(buf, use_list=1) assert [b'foo', b'bar'] == obj + +def test_unpack_bytearray(): + buf = bytearray(packb(('foo', 'bar'))) + obj = unpackb(buf, use_list=1) + assert [b'foo', b'bar'] == obj + expected_type = bytes + assert all(type(s) == expected_type for s in obj) |