def test_serialization_utilities(tmp_path): uid = uuid.UUID("7c0b18f5-f410-4e83-9263-b38c2328e516") data = dict(b=b"xyz", a="hêllo", c=uid) serialized_str = dump_to_json_str(data) # Keys are sorted assert ( serialized_str == r'{"a": "h\u00eallo", "b": {"$binary": {"base64": "eHl6", "subType": "00"}}, "c": {"$binary": {"base64": "fAsY9fQQToOSY7OMIyjlFg==", "subType": "03"}}}' ) deserialized = load_from_json_str(serialized_str) assert deserialized == data serialized_str = dump_to_json_str( data, ensure_ascii=False ) # Json arguments well propagated assert ( serialized_str == r'{"a": "hêllo", "b": {"$binary": {"base64": "eHl6", "subType": "00"}}, "c": {"$binary": {"base64": "fAsY9fQQToOSY7OMIyjlFg==", "subType": "03"}}}' ) deserialized = load_from_json_str(serialized_str) assert deserialized == data serialized_str = dump_to_json_bytes(data) # Keys are sorted assert ( serialized_str == rb'{"a": "h\u00eallo", "b": {"$binary": {"base64": "eHl6", "subType": "00"}}, "c": {"$binary": {"base64": "fAsY9fQQToOSY7OMIyjlFg==", "subType": "03"}}}' ) deserialized = load_from_json_bytes(serialized_str) assert deserialized == data serialized_str = dump_to_json_bytes( data, ensure_ascii=False ) # Json arguments well propagated assert ( serialized_str == b'{"a": "h\xc3\xaallo", "b": {"$binary": {"base64": "eHl6", "subType": "00"}}, "c": {"$binary": {"base64": "fAsY9fQQToOSY7OMIyjlFg==", "subType": "03"}}}' ) deserialized = load_from_json_bytes(serialized_str) assert deserialized == data tmp_filepath = os.path.join(tmp_path, "dummy_temp_file.dat") serialized_str = dump_to_json_file( tmp_filepath, data=data, ensure_ascii=True ) # Json arguments well propagated assert ( serialized_str == b'{"a": "h\u00eallo", "b": {"$binary": {"base64": "eHl6", "subType": "00"}}, "c": {"$binary": {"base64": "fAsY9fQQToOSY7OMIyjlFg==", "subType": "03"}}}' ) deserialized = load_from_json_file(tmp_filepath) assert deserialized == data
def get_keypair(self, keychain_uid: uuid.UUID, key_type: str) -> dict: try: keypair_obj = EscrowKeypair.objects.get(keychain_uid=keychain_uid, key_type=key_type) keypair_serialized = keypair_obj.keypair assert isinstance(keypair_serialized, str), repr(keypair_serialized) keypair = load_from_json_str(keypair_serialized) return keypair except EscrowKeypair.DoesNotExist: return None
def custom_json_decoder(): return load_from_json_str(response.text)