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