49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
# vim: set fileencoding=utf-8
|
|
import unittest
|
|
from unittest.mock import Mock
|
|
|
|
from bemani.data.mysql.base import BaseData
|
|
|
|
|
|
class TestBaseData(unittest.TestCase):
|
|
def test_basic_serialize(self) -> None:
|
|
data = BaseData(Mock(), None)
|
|
|
|
testdict = {
|
|
"test1": 1,
|
|
"test2": "2",
|
|
"test3": 3.3,
|
|
"test4": [1, 2, 3, 4],
|
|
"test5": {
|
|
"a": "b",
|
|
},
|
|
"testempty": [],
|
|
}
|
|
|
|
self.assertEqual(data.deserialize(data.serialize(testdict)), testdict)
|
|
|
|
def test_basic_byte_serialize(self) -> None:
|
|
data = BaseData(Mock(), None)
|
|
|
|
testdict = {
|
|
"bytes": b"\x01\x02\x03\x04\x05",
|
|
}
|
|
|
|
serialized = data.serialize(testdict)
|
|
self.assertEqual(serialized, '{"bytes": ["__bytes__", 1, 2, 3, 4, 5]}')
|
|
self.assertEqual(data.deserialize(serialized), testdict)
|
|
|
|
def test_deep_byte_serialize(self) -> None:
|
|
data = BaseData(Mock(), None)
|
|
|
|
testdict = {
|
|
"sentinal": True,
|
|
"test": {
|
|
"sentinal": False,
|
|
"bytes": b"\x01\x02\x03\x04\x05",
|
|
"bytes2": b"",
|
|
},
|
|
}
|
|
|
|
self.assertEqual(data.deserialize(data.serialize(testdict)), testdict)
|