from pathlib import Path import pytest from openpyxl import load_workbook from finreport_agent.pipeline import convert_report SAMPLE_PDF = ( Path(__file__).resolve().parents[2] / "TI2_2025.06 (1).pdf" ) @pytest.mark.skipif(not SAMPLE_PDF.exists(), reason="Local golden PDF is unavailable") def test_generated_workbook_has_audit_structure(tmp_path): output = tmp_path / "golden.xlsx" result = convert_report(SAMPLE_PDF, output) assert result.output_path == str(output.resolve()) assert output.exists() formulas = load_workbook(output, data_only=False) values = load_workbook(output, data_only=True) assert formulas.sheetnames == [ "Özet", "Hisse Senetleri", "T. Repo", "Türev", "Kontroller", "Kaynak İzleri", ] assert formulas["Özet"]["E9"].value == "=D9-C9" assert values["Özet"]["E9"].value == 0 assert values["Hisse Senetleri"].max_row == 74 assert values["Kontroller"]["B8"].value == "EQUITY_NOMINAL_ROUNDING" klypv_rows = [ row for row in values["Hisse Senetleri"].iter_rows(min_row=5, values_only=True) if row[0] == "KLYPV" ] assert len(klypv_rows) == 1 assert klypv_rows[0][7] is None assert klypv_rows[0][8] == 64.2