File size: 1,281 Bytes
9703837 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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
|