crcs-live / tests /test_cli_helpers.py
Nipun's picture
Add organized audit test suite and bump to v0.22.3
d55997a
import json
import tempfile
import unittest
from pathlib import Path
from test_cli import _read_final_answer_from_raw, _read_final_answer_from_report
class CliHelperTests(unittest.TestCase):
def test_read_final_answer_from_raw_returns_last_iteration_answer(self):
with tempfile.TemporaryDirectory() as tmpdir:
path = Path(tmpdir) / "result.json"
path.write_text(json.dumps({
"iterations": [
{"t": 1, "answer": "first"},
{"t": 2, "answer": "final answer"},
]
}), encoding="utf-8")
self.assertEqual(_read_final_answer_from_raw(str(path)), "final answer")
def test_read_final_answer_from_raw_handles_missing_or_invalid_files(self):
self.assertEqual(_read_final_answer_from_raw("/tmp/does-not-exist.json"), "")
with tempfile.TemporaryDirectory() as tmpdir:
path = Path(tmpdir) / "broken.json"
path.write_text("{not json", encoding="utf-8")
self.assertEqual(_read_final_answer_from_raw(str(path)), "")
def test_read_final_answer_from_report_extracts_blockquoted_answer(self):
report = (
"## Summary\n\n"
"Something.\n\n"
"## Generated Answer\n\n"
"> Line one\n"
"> Line two\n\n"
"## Next Section\n\n"
"Trailing content."
)
self.assertEqual(_read_final_answer_from_report(report), "Line one\nLine two")
def test_read_final_answer_from_report_returns_empty_when_missing(self):
self.assertEqual(_read_final_answer_from_report("## Summary\n\nNothing here."), "")