Files
fa-agent/tests/test_formula_reconcile_guard.py
T
2026-09-26 01:12:10 +08:00

31 lines
932 B
Python

from io import BytesIO
import pytest
from openpyxl import load_workbook
from finance.exporting import build_formula_workbook
pytestmark = pytest.mark.django_db
def test_reconcile_status_guards_non_numeric_difference(workspace):
ds, member, *_ = workspace
ds.periods = ["2025-08"]
ds.save(update_fields=["periods"])
output = BytesIO()
build_formula_workbook(
ds,
member,
{"start": "2026-08", "end": "2026-08", "comparison": "yoy", "group": "department"},
output,
)
workbook = load_workbook(BytesIO(output.getvalue()), data_only=False)
formulas = [
row[6].value
for row in workbook["对账检查"].iter_rows(min_row=2)
if isinstance(row[6].value, str) and row[6].value.startswith("=IF(D")
]
assert formulas
assert all("ISNUMBER(F" in formula for formula in formulas)
assert all('"通过"' in formula for formula in formulas)