diff options
author | Pramukta Kumar <pramukta.kumar@gmail.com> | 2015-03-17 15:02:40 -0400 |
---|---|---|
committer | Pramukta Kumar <pramukta.kumar@gmail.com> | 2015-03-17 15:02:40 -0400 |
commit | 2d05b40b030cb6b5da0913e72b59a91b09faccab (patch) | |
tree | 77366a24335744dd7fb2612eb8e119554d71c480 /test | |
parent | b7806a6e6eceb13153df6907b744af3be0e1075e (diff) | |
download | msgpack-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.py | 19 |
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 |