diff --git a/smartsim/_core/schemas/utils.py b/smartsim/_core/schemas/utils.py index 3071df80a..3bf42f601 100644 --- a/smartsim/_core/schemas/utils.py +++ b/smartsim/_core/schemas/utils.py @@ -63,14 +63,14 @@ def _to_message(self, schema: _SchemaT) -> _Message[_SchemaT]: def from_string(self, str_: str) -> _SchemaT: try: - header, _ = str_.split(self._msg_delim, 1) + type_, _ = str_.split(self._msg_delim, 1) except ValueError: - _msg = f"Failed to find message header in string {repr(str_)}" + _msg = f"Failed determine schema type of string {repr(str_)}" raise ValueError(_msg) from None try: - cls = self._map[header] + cls = self._map[type_] except KeyError: - raise ValueError(f"No type of value `{header}` is registered") from None + raise ValueError(f"No type of value `{type_}` is registered") from None msg = _Message.from_str(str_, self._msg_delim, cls) return self._from_message(msg) diff --git a/tests/utils/test_schema_utils.py b/tests/utils/test_schema_utils.py index c63751e65..d17956f97 100644 --- a/tests/utils/test_schema_utils.py +++ b/tests/utils/test_schema_utils.py @@ -73,8 +73,15 @@ def test_registry_errors_on_unknown_schema(): registry.to_string(Book(title="The Shortest Story of All Time", num_pages=1)) -def test_registry_correctly_maps_to_expected_type(): - registry = SchemaRegistry() +@pytest.mark.parametrize( + "delim", + ( + pytest.param(SchemaRegistry._DEFAULT_DELIMITER, id="default delimiter"), + pytest.param("::", id="custom delimiter"), + ), +) +def test_registry_correctly_maps_to_expected_type(delim): + registry = SchemaRegistry(delim) registry.register("person")(Person) registry.register("book")(Book) person = Person(name="Bob", age=36)