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