def test_dict_numbered_keys(self): """ Asserts dict with numbered keys """ obj = {1: 1, 2: 2} type_ = DictType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertDictEqual(obj, decoding)
def test_tuple(self): """ Asserts tuple type is handled as expected """ obj = (1, 2) type_ = TupleType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_set(self): """ Asserts set type is handled as expected """ obj = {1, 2} type_ = SetType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_timedelta(self): """ Asserts timedelta type is handled as expected """ obj = timedelta(days=1, seconds=2, microseconds=3) type_ = TimedeltaType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_bytearray(self): """ Asserts bytearray type is handled as expected """ obj = bytearray([1, 2, 3]) type_ = ByteArrayType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_string_encoding_as_bytes(self): """ Asserts an encoded string can be encoded/decoded accordingly """ obj = "some string".encode() type_ = BytesType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_list(self): """ Asserts list type is handled as expected """ obj = [1, 2, "some text"] type_ = ListType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_datetime(self): """ Asserts datetime type is handled as expected """ obj = datetime(year=1, month=2, day=3, hour=4, minute=5, second=6, microsecond=7) type_ = DatetimeType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertEqual(obj, decoding)
def test_defaultdict(self): _types = [int, bool, float, str, bytearray, bytes, datetime, defaultdict, dict, list, set, timedelta, tuple] for _type in _types: obj = defaultdict(_type) type_ = DefaultDictType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertDictEqual(obj, decoding) self.assertEqual(obj.default_factory, decoding.default_factory)
def test_instance(self): """ Asserts instance type is handled as expected """ class ClassToPersist(object): def __init__(self): self._int = 1 self._float = 1.0 obj = ClassToPersist() type_ = InstanceType() encoding = type_.encode(obj, encode) decoding = decode(encoding) self.assertDictEqual(obj.__dict__, decoding)