Persist dry-run response plans

This commit is contained in:
Luna 2026-06-13 05:53:48 -07:00
parent 812cf0c836
commit 1a5b6f1d8d
11 changed files with 133 additions and 5 deletions

View file

@ -85,6 +85,34 @@ class TestRespondPlan(unittest.TestCase):
plan = json.loads(buf.getvalue())
self.assertEqual(plan["incident_id"], self.iid)
self.assertGreaterEqual(plan["summary"]["action_count"], 5)
artifacts = plan["artifacts"]
saved = Path(artifacts["plan_path"])
audit = Path(artifacts["audit_log"])
self.assertTrue(saved.is_file())
self.assertTrue(audit.is_file())
stored = json.loads(saved.read_text())
self.assertEqual(stored["plan_id"], plan["plan_id"])
self.assertEqual(stored["artifacts"]["plan_path"], str(saved))
record = json.loads(audit.read_text().splitlines()[-1])
self.assertEqual(record["event"], "response_plan_generated")
self.assertEqual(record["incident_id"], self.iid)
self.assertEqual(record["plan_path"], str(saved))
finally:
os.environ.pop("ENODIA_LOG_DIR", None)
def test_cli_text_reports_persisted_plan(self):
os.environ["ENODIA_LOG_DIR"] = str(self.tmp)
try:
buf = io.StringIO()
with redirect_stdout(buf):
code = main(["respond", "plan", self.iid])
self.assertEqual(code, 0)
out = buf.getvalue()
self.assertIn("saved:", out)
self.assertIn("audit:", out)
plans = list((self.tmp / "response-plans").glob("*.json"))
self.assertEqual(len(plans), 1)
self.assertTrue((self.tmp / "response-audit.log").is_file())
finally:
os.environ.pop("ENODIA_LOG_DIR", None)