summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPramukta Kumar <pramukta.kumar@gmail.com>2015-03-17 15:02:40 -0400
committerPramukta Kumar <pramukta.kumar@gmail.com>2015-03-17 15:02:40 -0400
commit2d05b40b030cb6b5da0913e72b59a91b09faccab (patch)
tree77366a24335744dd7fb2612eb8e119554d71c480 /test
parentb7806a6e6eceb13153df6907b744af3be0e1075e (diff)
downloadmsgpack-python-2d05b40b030cb6b5da0913e72b59a91b09faccab.tar.gz
Test to demonstrate that the default function isn't always called (#133)
Diffstat (limited to 'test')
-rw-r--r--test/test_extension.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/test_extension.py b/test/test_extension.py
index 2f85ce3..c552498 100644
--- a/test/test_extension.py
+++ b/test/test_extension.py
@@ -55,3 +55,22 @@ def test_extension_type():
s = msgpack.packb(obj, default=default)
obj2 = msgpack.unpackb(s, ext_hook=ext_hook)
assert obj == obj2
+
+import sys
+if sys.version > '3':
+ long = int
+
+def test_overriding_hooks():
+ def default(obj):
+ if isinstance(obj, long):
+ return {"__type__": "long", "__data__": str(obj)}
+ else:
+ return obj
+
+ obj = {"testval": long(1823746192837461928374619)}
+ refobj = {"testval": default(obj["testval"])}
+ refout = msgpack.packb(refobj)
+ assert isinstance(refout, (str, bytes))
+ testout = msgpack.packb(obj, default=default)
+
+ assert refout == testout