Skip to content

Commit c1db26d

Browse files
committed
Generalize field separation test
1 parent 2c5b562 commit c1db26d

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

tests/serialization/test_metadata_serialization.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from hypothesis import given
66
from pytest import param
77

8+
from baybe.parameters.base import ParameterMetadata
89
from baybe.utils.metadata import Metadata, to_metadata
910
from tests.hypothesis_strategies.metadata import metadata, parameter_metadata
1011

@@ -26,10 +27,18 @@ def test_metadata_roundtrip(data, metadata_strategy):
2627
assert meta == meta2, (meta, meta2)
2728

2829

29-
def test_field_separation():
30-
"""Field separation works regardless of the conversion route."""
30+
@pytest.mark.parametrize("cls", [Metadata, ParameterMetadata])
31+
def test_field_separation(cls: type[Metadata]):
32+
"""Field separation adapts to the specific ``Metadata`` subclass and works
33+
regardless of the conversion route.
34+
""" # noqa: D205
3135
dct = {"description": "test", "unit": "m", "key": "value"}
32-
metadata = Metadata("test", "m", {"key": "value"})
33-
via_converter = to_metadata(dct)
34-
via_from_dict = Metadata.from_dict(dct)
36+
if cls is Metadata:
37+
metadata = cls(description="test", misc={"unit": "m", "key": "value"})
38+
elif issubclass(cls, ParameterMetadata):
39+
metadata = cls(description="test", unit="m", misc={"key": "value"})
40+
else:
41+
raise ValueError(f"Unsupported class: {cls}")
42+
via_converter = to_metadata(dct, cls)
43+
via_from_dict = cls.from_dict(dct)
3544
assert metadata == via_converter == via_from_dict

0 commit comments

Comments
 (0)