From 1fa458c3de6f9e6e67dd67a55040eaf2530e4833 Mon Sep 17 00:00:00 2001 From: FanouZeng-TT <18280587072@163.com> Date: Fri, 14 Aug 2026 08:09:27 +0800 Subject: [PATCH] fix: allow equivalent metadata union members --- preprocess_schemas.py | 2 +- tests/test_codegen_pipeline.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) 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"},