import sys, os, json sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) from pathlib import Path from report.generator import ReportGenerator from data.diff_result import VerificationRun, FieldResult def test_json_output(tmp_path): vr = VerificationRun(program="BILL-CALC", status="PASS", exit_code=0, field_results=[FieldResult(field_name="BR-AMT", status="PASS")]) p = ReportGenerator().generate_json(vr, tmp_path / "result.json") d = json.loads(p.read_text()) assert d["program"] == "BILL-CALC" def test_html_output(tmp_path): vr = VerificationRun(program="TEST", status="MISMATCH", field_results=[FieldResult(field_name="F1", status="MISMATCH")]) p = ReportGenerator().generate_html(vr, tmp_path / "report.html") assert "MISMATCH" in p.read_text() def test_machine_json(tmp_path): vr = VerificationRun(program="TEST", status="PASS", exit_code=0) p = ReportGenerator().generate_machine_json(vr, tmp_path / "machine.json") assert json.loads(p.read_text())["exit_code"] == 0