Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a10391-6355-7b41-b0fa-3e14e874f091
55 lines
2.5 KiB
Python
55 lines
2.5 KiB
Python
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()
|