import pytest from scripts.telemetry import append_subagent_run, append_verdict, read_runs def test_round_trip(tmp_path): log = tmp_path / "runs.jsonl" append_subagent_run( log, run_id="r1", repo="/r", mode="local", agent="aws-bp-reviewer", model="claude-sonnet-4-6", input_tokens=100, output_tokens=20, duration_ms=1000, finding_count=3, ) append_verdict( log, run_id="r1", agent="aws-bp-reviewer", rule_id="TRIVY AVD-AWS-0089", file="vpc.tf", line=12, verdict="kept", notes="real", ) records = read_runs(log) assert len(records) == 2 assert records[0]["kind"] == "subagent_run" assert records[0]["input_tokens"] == 100 assert records[1]["kind"] == "verdict" assert records[1]["verdict"] == "kept" def test_append_creates_parent_dir(tmp_path): log = tmp_path / "deep" / "nested" / "runs.jsonl" append_subagent_run( log, run_id="r2", repo="/r", mode="local", agent="x", model="y", input_tokens=0, output_tokens=0, duration_ms=0, finding_count=0, ) assert log.exists() def test_invalid_verdict_raises(tmp_path): log = tmp_path / "runs.jsonl" with pytest.raises(ValueError, match="invalid verdict"): append_verdict( log, run_id="r3", agent="aws-bp-reviewer", rule_id="TRIVY AVD-AWS-0089", file="a.tf", line=5, verdict="maybe", notes="", )