summaryrefslogtreecommitdiff
path: root/test/test_obj.py
diff options
context:
space:
mode:
authorJoel Nothman <joel.nothman@gmail.com>2012-10-04 11:31:40 +1000
committerJoel Nothman <joel.nothman@gmail.com>2012-10-04 11:31:40 +1000
commitdf4f23779d14f2b41e9a5ecca0a06e21385cc603 (patch)
treebf03928d8eb40e9f5391eb49676001a32b83f39e /test/test_obj.py
parente7c51d9089e9270ce197c00a6af1c60e45f36e97 (diff)
parentd5f99959cc2ec393c13fc9e44714351272bac7fc (diff)
downloadmsgpack-python-df4f23779d14f2b41e9a5ecca0a06e21385cc603.tar.gz
Merge commit 'd5f9995' into read_bytes
Conflicts: msgpack/_msgpack.pyx
Diffstat (limited to 'test/test_obj.py')
-rw-r--r--test/test_obj.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/test_obj.py b/test/test_obj.py
index d155b73..881e627 100644
--- a/test/test_obj.py
+++ b/test/test_obj.py
@@ -18,25 +18,35 @@ def _encode_complex(obj):
def test_encode_hook():
packed = packb([3, 1+2j], default=_encode_complex)
- unpacked = unpackb(packed)
+ unpacked = unpackb(packed, use_list=1)
eq_(unpacked[1], {b'__complex__': True, b'real': 1, b'imag': 2})
def test_decode_hook():
packed = packb([3, {b'__complex__': True, b'real': 1, b'imag': 2}])
- unpacked = unpackb(packed, object_hook=_decode_complex)
+ unpacked = unpackb(packed, object_hook=_decode_complex, use_list=1)
eq_(unpacked[1], 1+2j)
+def test_decode_pairs_hook():
+ packed = packb([3, {1: 2, 3: 4}])
+ prod_sum = 1 * 2 + 3 * 4
+ unpacked = unpackb(packed, object_pairs_hook=lambda l: sum(k * v for k, v in l), use_list=1)
+ eq_(unpacked[1], prod_sum)
+
+@raises(ValueError)
+def test_only_one_obj_hook():
+ unpackb(b'', object_hook=lambda x: x, object_pairs_hook=lambda x: x)
+
@raises(ValueError)
def test_bad_hook():
packed = packb([3, 1+2j], default=lambda o: o)
- unpacked = unpackb(packed)
+ unpacked = unpackb(packed, use_list=1)
def _arr_to_str(arr):
return ''.join(str(c) for c in arr)
def test_array_hook():
packed = packb([1,2,3])
- unpacked = unpackb(packed, list_hook=_arr_to_str)
+ unpacked = unpackb(packed, list_hook=_arr_to_str, use_list=1)
eq_(unpacked, '123')
if __name__ == '__main__':