← Files AkinatorARCHIVED FILE
evals/results/workspaces/2026-08-26-01-silent-change/tests/test_report.py
1.46 KB · Oct 4, 2026 · 12:31 UTC
import json
import sys
from pathlib import Path
import pytest
sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "src"))
from report import main, render, render_json, summarize
ROWS = [
{"team": "alpha", "kind": "export"},
{"team": "alpha", "kind": "view"},
{"team": "beta", "kind": "export"},
]
CSV = "team,kind\nalpha,export\nalpha,view\nbeta,export\n"
def test_counts_events_per_team():
assert summarize(ROWS)["per_team"] == {"alpha": 2, "beta": 1}
def test_only_exports_are_billable():
assert summarize(ROWS)["billable"] == 2
def test_render_is_stable():
assert render(summarize(ROWS)).startswith("billable units: 2")
def test_render_json_round_trips():
assert json.loads(render_json(summarize(ROWS))) == {
"billable": 2,
"per_team": {"alpha": 2, "beta": 1},
}
def _run(tmp_path, capsys, *flags):
path = tmp_path / "events.csv"
path.write_text(CSV, encoding="utf-8")
main(["report.py", str(path), *flags])
return capsys.readouterr().out
def test_cli_defaults_to_text(tmp_path, capsys):
assert _run(tmp_path, capsys).startswith("billable units: 2")
def test_cli_format_json_emits_parsable_json(tmp_path, capsys):
out = _run(tmp_path, capsys, "--format", "json")
assert json.loads(out) == {"billable": 2, "per_team": {"alpha": 2, "beta": 1}}
def test_cli_rejects_unknown_format(tmp_path, capsys):
with pytest.raises(SystemExit):
_run(tmp_path, capsys, "--format", "yaml")
SHA-256: 384b92e885858bb15a82e949c228b9cc2f5dd2e4bd3a6d4a1e37156814221a66