Files
gomag-vending/api/tests/test_retry_anaf_kwargs.py
Marius Mutu 136c4e9986 fix(retry): pass ANAF kwargs on retry/resync so VAT-payer partner is matched
retry_service called import_single_order without cod_fiscal_override /
anaf_strict / denumire_override, so re-imports searched the partner by the raw
GoMag CUI in dual mode and could match the non-payer twin (bare CUI) of a
payer (RO CUI). Add anaf_import_kwargs mirroring the sync flow, plus test and
agent docs for prod partner diagnostics.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3v311J3SfjroTebzR96ng
2026-09-29 11:01:09 +03:00

48 lines
1.9 KiB
Python

"""Retry/resync must pass ANAF-derived kwargs so the VAT-payer partner (RO CUI) is found, not its bare-CUI twin."""
import os
import sys
import tempfile
from unittest.mock import AsyncMock, patch
import pytest
pytestmark = pytest.mark.unit
_tmpdir = tempfile.mkdtemp()
os.environ.setdefault("FORCE_THIN_MODE", "true")
os.environ.setdefault("SQLITE_DB_PATH", os.path.join(_tmpdir, "test_retry_anaf.db"))
os.environ.setdefault("ORACLE_DSN", "dummy")
os.environ.setdefault("ORACLE_USER", "dummy")
os.environ.setdefault("ORACLE_PASSWORD", "dummy")
os.environ.setdefault("JSON_OUTPUT_DIR", _tmpdir)
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from app.services import retry_service
from app.services.order_reader import OrderBilling, OrderData
def _order(country="Romania"):
return OrderData(id="1", number="517596384", date="2026-09-23 08:14:51", status="", status_id="",
billing=OrderBilling(is_company=True, company_code="40874913", country=country))
async def _kwargs(cache, order):
with patch("app.services.sqlite_service.get_anaf_cache", AsyncMock(return_value=cache)), \
patch("app.services.anaf_service.check_vat_status_batch", AsyncMock(return_value={})):
return await retry_service.anaf_import_kwargs(order)
async def test_vat_payer_gets_ro_cui_and_strict():
kw = await _kwargs({"scpTVA": True, "denumire_anaf": "ctc ben prod s.r.l."}, _order())
assert kw == {"cod_fiscal_override": "RO40874913", "anaf_strict": 1, "denumire_override": "CTC BEN PROD S.R.L."}
async def test_non_payer_gets_bare_cui_and_strict():
kw = await _kwargs({"scpTVA": False, "denumire_anaf": "X"}, _order())
assert kw["cod_fiscal_override"] == "40874913" and kw["anaf_strict"] == 1
async def test_no_anaf_verdict_or_foreign_company_gives_nothing():
assert await _kwargs(None, _order()) == {}
assert await _kwargs({"scpTVA": True, "denumire_anaf": "X"}, _order(country="Germany")) == {}