diff --git a/qupulse/serialization.py b/qupulse/serialization.py index 3825057ed..389748666 100644 --- a/qupulse/serialization.py +++ b/qupulse/serialization.py @@ -1024,7 +1024,11 @@ def filter_serializables(self, obj_dict) -> Any: if get_default_pulse_registry() is self.storage: registry = dict() - return deserialization_callback(identifier=obj_identifier, registry=registry, **obj_dict) + try: + return deserialization_callback(identifier=obj_identifier, registry=registry, **obj_dict) + except Exception as err: + raise ValueError(f"Unable to deserialize {type_identifier} from {obj_dict}", + type_identifier, obj_dict) from err return obj_dict diff --git a/tests/serialization_tests.py b/tests/serialization_tests.py index f230bd6da..1ebd93b8e 100644 --- a/tests/serialization_tests.py +++ b/tests/serialization_tests.py @@ -1051,9 +1051,12 @@ def test_deserialize_storage_is_not_default_registry_id_occupied(self) -> None: del pulse_storage pulse_storage = PulseStorage(backend) - with self.assertRaisesRegex(RuntimeError, "Pulse with name already exists"): + with self.assertRaises(ValueError) as cm: pulse_storage['peter'] + # this is shitty + self.assertIsInstance(cm.exception.__cause__, RuntimeError) + def test_deserialize_twice_same_object_storage_is_default_registry(self) -> None: backend = DummyStorageBackend()