# 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)