diff --git a/preprocess_schemas.py b/preprocess_schemas.py index 9d433ab..cd0041a 100644 --- a/preprocess_schemas.py +++ b/preprocess_schemas.py @@ -573,7 +573,7 @@ def normalize_metadata_schemas(schemas, target_dir): ucp_path = str((target_dir / "ucp.json").resolve()) if ucp_path in schemas: ucp = schemas[ucp_path] - ucp["oneOf"] = [ + ucp["anyOf"] = [ {"$ref": f"#/$defs/{name}"} for name in metadata_union_members(ucp) ] diff --git a/tests/test_codegen_pipeline.py b/tests/test_codegen_pipeline.py index c60bbcc..bb651ff 100644 --- a/tests/test_codegen_pipeline.py +++ b/tests/test_codegen_pipeline.py @@ -460,10 +460,10 @@ def test_generate_variants_writes_operation_specific_files(self) -> None: class PipelineDependencyTest(unittest.TestCase): """Tests metadata normalization and transitive variant dependencies.""" - def test_normalize_metadata_schemas_sets_root_union_and_ucp_refs( + def test_normalize_metadata_schemas_sets_root_anyof_and_ucp_refs( self, ) -> None: - """Metadata schemas expose the root union and normalized references.""" + """Equivalent response profiles remain valid metadata alternatives.""" target_dir = Path("/schemas") ucp_path = str((target_dir / "ucp.json").resolve()) checkout_path = str((target_dir / "checkout.json").resolve()) @@ -497,8 +497,9 @@ def test_normalize_metadata_schemas_sets_root_union_and_ucp_refs( preprocess_schemas.normalize_metadata_schemas(schemas, target_dir) + self.assertNotIn("oneOf", schemas[ucp_path]) self.assertEqual( - schemas[ucp_path]["oneOf"], + schemas[ucp_path]["anyOf"], [ {"$ref": "#/$defs/platform_schema"}, {"$ref": "#/$defs/business_schema"},