railiance-platform/tests/test_provisioning_window.py
codex 46eb8bea9e
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Prepare offline attended provisioning checklists and route remaining custody gates
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a10391-6355-7b41-b0fa-3e14e874f091
2026-10-04 00:27:00 +02:00

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()