forked from ObjectProfile/PythonBridge
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtest_msgpack_serializer.py
More file actions
30 lines (22 loc) · 1.01 KB
/
test_msgpack_serializer.py
File metadata and controls
30 lines (22 loc) · 1.01 KB
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
import msgpack
import msgpack_serializer
from msgpack_serializer import *
import unittest
from object_registry import registry
class TestMsgpackSerializer(unittest.TestCase):
def setUp(self):
self.serializer = MsgPackSerializer()
def assert_encode_raw(self, obj, expected):
self.assertEqual(self.serializer.serialize(obj),expected)
def assert_encode(self, obj, expected):
self.assertEqual(self.serializer.deserialize(self.serializer.serialize(obj)),expected)
def test_encode_int(self):
self.assert_encode_raw(3, b'\x03')
def test_encode_float(self):
self.assert_encode_raw(5.5, b'\xcb\x40\x16\x00\x00\x00\x00\x00\x00')
def test_add_mapping(self):
msgpack_serializer.addMapping(type(self), lambda obj: 'Foooo!')
self.assert_encode(self,'Foooo!')
def test_encode_obj(self):
registry().register_with_id(self.serializer,'337')
self.assert_encode(self.serializer,{'__pyclass__': "MsgPackSerializer", "__pyid__": '337'})