55from hypothesis import given
66from pytest import param
77
8+ from baybe .parameters .base import ParameterMetadata
89from baybe .utils .metadata import Metadata , to_metadata
910from 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