diff --git a/pyaml/validation/generator.py b/pyaml/validation/generator.py index f39614da..8767b65a 100644 --- a/pyaml/validation/generator.py +++ b/pyaml/validation/generator.py @@ -230,7 +230,7 @@ def model_schema(self, schema: core_schema.ModelSchema) -> dict[str, Any]: subschemas = [self.generate_inner(item.__pydantic_core_schema__) for item in subclasses] # TODO: get the schemas to work when using oneOf instead - merged: dict[str, Any] = {"anyOf": subschemas} + merged: dict[str, Any] = {"oneOf": subschemas} for key in METADATA_KEYS: if key in base_schema and key not in merged: diff --git a/tests/validation/test_generator.py b/tests/validation/test_generator.py index 97dfc34d..b3d8917c 100644 --- a/tests/validation/test_generator.py +++ b/tests/validation/test_generator.py @@ -129,13 +129,13 @@ def test_generate_replaces_parent_schema_with_registered_subclasses( schema = SchemaGenerator.generate("pkg.module.Parent") - anyof = schema.get("anyOf", []) - refs = {item["$ref"] for item in anyof if "$ref" in item} + oneof = schema.get("oneOf", []) + refs = {item["$ref"] for item in oneof if "$ref" in item} if refs: assert "#/$defs/ChildSchemaA" in refs assert "#/$defs/ChildSchemaB" in refs else: - class_paths = {item["properties"]["class"]["const"] for item in anyof if "properties" in item} + class_paths = {item["properties"]["class"]["const"] for item in oneof if "properties" in item} assert "pkg.module.ChildA" in class_paths assert "pkg.module.ChildB" in class_paths @@ -151,13 +151,13 @@ def test_generate_includes_real_and_virtual_subclasses( schema = SchemaGenerator.generate("pkg.module.Parent") - anyof = schema.get("anyOf", []) - refs = {item["$ref"] for item in anyof if "$ref" in item} + oneof = schema.get("oneOf", []) + refs = {item["$ref"] for item in oneof if "$ref" in item} if refs: assert "#/$defs/ChildSchemaA" in refs assert "#/$defs/VirtualChildSchema" in refs else: - class_paths = {item["properties"]["class"]["const"] for item in anyof if "properties" in item} + class_paths = {item["properties"]["class"]["const"] for item in oneof if "properties" in item} assert "pkg.module.ChildA" in class_paths assert "pkg.module.VirtualChild" in class_paths