cai/tests/continuous_ops/test_scriptgen_render.py

42 lines
1.3 KiB
Python

"""Smoke test for generated loop artifacts."""
import json
from pathlib import Path
from cai.continuous_ops.scriptgen import CONFIG_NAME, render_loop_script
def test_render_loop_script_contains_expected_markers(tmp_path: Path) -> None:
out = render_loop_script(
run_dir=tmp_path,
tick_seconds=120,
tick_prompt="Do one iteration.\nSecond line.",
privileged=False,
cai_argv=["cai"],
)
assert out.name == "run_loop.py"
assert out.is_file()
text = out.read_text(encoding="utf-8")
assert "cai.continuous_ops.loop_runner" in text
assert "Do one iteration." not in text # prompt lives in JSON only
cfg_path = tmp_path / CONFIG_NAME
assert cfg_path.is_file()
cfg = json.loads(cfg_path.read_text(encoding="utf-8"))
assert cfg["tick_seconds"] == 120
assert "Do one iteration." in cfg["tick_prompt"]
assert cfg["privileged"] is False
assert cfg["cai_argv"] == ["cai"]
assert cfg.get("worker_agent_type") == "blueteam_agent"
def test_render_privileged_primes_sudo_and_no_sudo_block_marker(tmp_path: Path) -> None:
render_loop_script(
run_dir=tmp_path,
tick_seconds=90,
tick_prompt="Tick.",
privileged=True,
cai_argv=["cai"],
)
cfg = json.loads((tmp_path / CONFIG_NAME).read_text(encoding="utf-8"))
assert cfg["privileged"] is True