From 93feddbd777416fc76d048e5bf1a349d3f7319a6 Mon Sep 17 00:00:00 2001 From: William Jamieson Date: Mon, 11 Nov 2024 15:33:48 -0500 Subject: [PATCH] Add test to force required blocks for certain types of metadata --- tests/test_schemas.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_schemas.py b/tests/test_schemas.py index fdcd520a..844a80bd 100644 --- a/tests/test_schemas.py +++ b/tests/test_schemas.py @@ -131,9 +131,15 @@ def test_metadata_force_required(schema): def callback(node): if isinstance(node, Mapping) and "properties" in node: for prop_name, prop in node["properties"].items(): + # Test that if a subnode has a required list, that the parent has a required list + if isinstance(prop, Mapping) and "required" in prop: + assert "required" in node + assert prop_name in node["required"] + + # Test that if a subnode has certain metadata entries, that the parent has a required list for metadata in METADATA_FORCING_REQUIRED: if isinstance(prop, Mapping) and metadata in prop: - assert "required" in node + assert "required" in node, f"metadata {metadata} in {prop_name} requires required list" assert prop_name in node["required"] asdf.treeutil.walk(schema, callback)