import importlib.util from pathlib import Path import tempfile import unittest import yaml SPEC = importlib.util.spec_from_file_location("window", Path(__file__).resolve().parents[1] / "scripts/provisioning_window.py") module = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(module) D = "62aa95e4-3ccc-4867-8806-5e3db005b483" class WindowTests(unittest.TestCase): def setUp(self): self.tmp = tempfile.TemporaryDirectory() self.addCleanup(self.tmp.cleanup) self.root = Path(self.tmp.name) self.plans = self.root / "workplans" self.plans.mkdir() self.task = "```task\nid: EX-WP-0001-T01\nstatus: wait\ndecision_id: " + D + "\n```\n" (self.plans / "plan.md").write_text(self.task) for name in ("lane.md", "receipt.md"): (self.root / name).write_text("non-secret contract") self.window = {"decision_id": D, "date": "2026-10-03", "entries": [{"task_id": "EX-WP-0001-T01", "ccr": "ccr.yaml", "lane_doc": "lane.md", "receipt_contract": "receipt.md"}]} self.ccr("approved") def ccr(self, status): (self.root / "ccr.yaml").write_text(yaml.safe_dump({"status": status, "secret": "NEVER_PRINT_THIS"})) def render(self): p = self.root / "window.yaml" p.write_text(yaml.safe_dump(self.window)) return module.render_window(p, [self.plans], self.root) def test_approved_join_and_no_values(self): output, ready = self.render() self.assertTrue(ready) self.assertNotIn("NEVER_PRINT_THIS", output) def test_applied_custody_cannot_replay(self): self.ccr("applied") self.assertFalse(self.render()[1]) def test_missing_join_stays_not_ready(self): self.window["entries"] = [] self.assertFalse(self.render()[1]) def test_stale_join_refused(self): (self.plans / "plan.md").write_text(self.task.replace("status: wait", "status: done")) with self.assertRaises(ValueError): self.render() def test_duplicate_authority_refused(self): (self.plans / "duplicate.md").write_text(self.task) with self.assertRaises(ValueError): self.render() def test_outside_contract_refused(self): self.window["entries"][0]["lane_doc"] = "../outside.md" with self.assertRaises(ValueError): self.render() def test_residual_not_selected(self): (self.plans / "plan.md").write_text("---\nflavor: residual\n---\n" + self.task) self.window["entries"] = [] self.assertFalse(self.render()[1]) if __name__ == "__main__": unittest.main()