Compose name-first form write plans
This commit is contained in:
@@ -146,6 +146,7 @@ def validate_selector_chain(
|
||||
resolve_overrides = coverage.get("resolve_overrides") if isinstance(coverage.get("resolve_overrides"), dict) else {}
|
||||
saved_state_resolution = coverage.get("saved_state_resolution") if isinstance(coverage.get("saved_state_resolution"), dict) else {}
|
||||
composition = coverage.get("write_plan_composition") if isinstance(coverage.get("write_plan_composition"), dict) else {}
|
||||
form_composition = coverage.get("form_write_plan_composition") if isinstance(coverage.get("form_write_plan_composition"), dict) else {}
|
||||
skips = coverage.get("skips") if isinstance(coverage.get("skips"), list) else None
|
||||
summary = {
|
||||
"path": str(path),
|
||||
@@ -161,6 +162,9 @@ def validate_selector_chain(
|
||||
"write_plan_target": saved_state_resolution.get("write_plan_target"),
|
||||
"composition_status": composition.get("status"),
|
||||
"composed": composition.get("composed"),
|
||||
"form_composition_status": form_composition.get("status"),
|
||||
"form_composed": form_composition.get("composed"),
|
||||
"form_name_first": form_composition.get("name_first"),
|
||||
}
|
||||
if not report:
|
||||
return summary
|
||||
@@ -177,7 +181,7 @@ def validate_selector_chain(
|
||||
)
|
||||
if report.get("passed") is not True:
|
||||
failures.append({"code": "selector_chain_not_passed", "label": label, "path": str(path), "issues": report.get("issues")})
|
||||
for section in ("resolve_overrides", "saved_state_resolution", "write_plan_composition", "skips"):
|
||||
for section in ("resolve_overrides", "saved_state_resolution", "write_plan_composition", "form_write_plan_composition", "skips"):
|
||||
if section not in coverage:
|
||||
failures.append({"code": "selector_chain_coverage_section_missing", "label": label, "section": section, "path": str(path)})
|
||||
if resolve_overrides.get("attempted") is not True:
|
||||
@@ -207,10 +211,23 @@ def validate_selector_chain(
|
||||
})
|
||||
if composition.get("composed") is True and composition.get("status") in {None, "skipped_no_saved_state_target"}:
|
||||
failures.append({"code": "selector_chain_composed_status_unexpected", "label": label, "path": str(path), "composition": composition})
|
||||
if not isinstance(form_composition.get("attempted"), bool):
|
||||
failures.append({"code": "selector_chain_form_composition_attempted_not_boolean", "label": label, "path": str(path), "composition": form_composition})
|
||||
if not isinstance(form_composition.get("composed"), bool):
|
||||
failures.append({"code": "selector_chain_form_composed_not_boolean", "label": label, "path": str(path), "composition": form_composition})
|
||||
if form_composition.get("candidate") is True and form_composition.get("composed") is not True:
|
||||
failures.append({"code": "selector_chain_form_target_not_composed", "label": label, "path": str(path), "composition": form_composition})
|
||||
if form_composition.get("composed") is True and form_composition.get("name_first") is not True:
|
||||
failures.append({"code": "selector_chain_form_composition_not_name_first", "label": label, "path": str(path), "composition": form_composition})
|
||||
if skips is None:
|
||||
failures.append({"code": "selector_chain_skips_not_list", "label": label, "path": str(path), "skips": coverage.get("skips")})
|
||||
if require_composition and composition.get("composed") is not True:
|
||||
failures.append({"code": "selector_chain_composition_required", "label": label, "path": str(path), "composition": composition})
|
||||
if require_composition and (
|
||||
form_composition.get("composed") is not True
|
||||
or form_composition.get("name_first") is not True
|
||||
):
|
||||
failures.append({"code": "selector_chain_form_composition_required", "label": label, "path": str(path), "composition": form_composition})
|
||||
steps = report.get("steps") if isinstance(report.get("steps"), list) else []
|
||||
for step in steps:
|
||||
if not isinstance(step, dict):
|
||||
@@ -1445,6 +1462,15 @@ def write_self_test_reports(report_dir: Path, *, base_id: str, composed: bool, s
|
||||
"composed": composed,
|
||||
"from_write_plan_target": composed,
|
||||
},
|
||||
"form_write_plan_composition": {
|
||||
"attempted": composed,
|
||||
"search_attempted": composed,
|
||||
"search_status": "ok" if composed else None,
|
||||
"candidate": composed,
|
||||
"status": "planned" if composed else None,
|
||||
"composed": composed,
|
||||
"name_first": composed,
|
||||
},
|
||||
"skips": [] if composed else [{"step": "metadata.write.plan", "status": "skipped_no_saved_state_target"}],
|
||||
},
|
||||
"steps": [
|
||||
@@ -1970,6 +1996,7 @@ def run_self_test() -> dict[str, Any]:
|
||||
strict_codes = {str(failure.get("code")) for failure in strict_skip["failures"]}
|
||||
for expected in (
|
||||
"selector_chain_composition_required",
|
||||
"selector_chain_form_composition_required",
|
||||
"saved_state_form_write_required",
|
||||
"saved_state_module_write_required",
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user