def test_complex_exception_serializer_round_trip_msgpack(): exception = ComplexExceptionType("NotFound", "the object is missing") data = msgpack_dumps({"exception": exception}) actual_data = msgpack_loads(data) assert "exception" in actual_data assert type(actual_data["exception"]) == Exception assert str(actual_data["exception"]) == str(exception)
def test_exception_serializer_round_trip_msgpack(): error_message = "unreachable host" data = msgpack_dumps({"exception": ConnectionError(error_message)}) actual_data = msgpack_loads(data) assert "exception" in actual_data assert type(actual_data["exception"]) == ConnectionError assert str(actual_data["exception"]) == error_message
def test_serializers_round_trip_msgpack(): expected_original_data = { **DATA, "none_dict_key": { None: 42 }, "long_int_is_loooong": 10000000000000000000000000000000, "long_negative_int_is_loooong": -10000000000000000000000000000000, } data = msgpack_dumps(expected_original_data) actual_data = msgpack_loads(data) assert actual_data == expected_original_data
def test_serializers_decode_naive_datetime(): expected_dt = datetime.datetime(2015, 1, 1, 12, 4, 42, 231455) # Current encoding assert (msgpack_loads(b"\x82\xc4\x07swhtype\xa8datetime\xc4\x01d\xba" b"2015-01-01T12:04:42.231455") == expected_dt)
def test_serializers_decode_datetime_compat_msgpack(): dt = datetime.datetime.now(tz=datetime.timezone.utc) encmsg = msgpack_dumps({b"swhtype": "datetime", b"d": dt.isoformat()}) decmsg = msgpack_loads(encmsg) assert decmsg == dt
def test_serializers_generator_msgpack(): data = msgpack_dumps((i for i in range(5))) assert msgpack_loads(data) == [i for i in range(5)]
def test_serializers_round_trip_msgpack_extra_types(): original_data = [ExtraType("baz", DATA), "qux"] data = msgpack_dumps(original_data, extra_encoders=extra_encoders) actual_data = msgpack_loads(data, extra_decoders=extra_decoders) assert actual_data == original_data