5.12 (livrat): editare in modal a randurilor de preview, cont obligatoriu inainte de import, formular editare extras (_form_editare, _editare_preview_modal), plus suita de teste aferenta (preview edit/compact, mapare op, form editare, signup, admin panel). Design + planificare: - docs/design.md: sistem de design (tokeni, breakpoints, scara control, componente, a11y). - docs/prd/prd-5.12-* si prd-5.13-* (5.13 cu raport /autoplan: CEO+Design+Eng, audit trail). Curatare: sterse PNG-urile de test/mockup temporare din radacina. Nota: implementarea CSS 5.13 (responsive compact + sistem butoane) NU e inca facuta — planul revizuit cere refactorul testelor fragile din test_web_responsive.py INAINTE de CSS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
"""Configurare pytest la nivel de suita: izoleaza testele de `.env`-ul de dezvoltare.
|
|
|
|
In working-dir exista un `.env` pentru probe live (ex. `AUTOPASS_REQUIRE_API_KEY=true`,
|
|
`AUTOPASS_WORKER_USE_TEST_CREDS=true`, creds RAR de test) care e citit automat de
|
|
pydantic Settings. Fara izolare, acele flag-uri ar regla tacit comportamentul
|
|
testelor: 401 pe rutele protejate si creds <test> in loc de fallback-ul pe cont.
|
|
|
|
Fixam un default sigur pe variabilele de mediu — care au PRECEDENTA peste fisierul
|
|
`.env` in pydantic-settings — deci neutralizam doar valorile din fisier, nu si o
|
|
variabila exportata explicit in shell. Testele care chiar verifica enforcement-ul
|
|
(auth pornit, creds <test>) il seteaza punctual prin `monkeypatch`/`object.__setattr__`.
|
|
"""
|
|
|
|
import hashlib
|
|
import os
|
|
|
|
os.environ.setdefault("AUTOPASS_REQUIRE_API_KEY", "false")
|
|
os.environ.setdefault("AUTOPASS_WORKER_USE_TEST_CREDS", "false")
|
|
|
|
|
|
def make_test_cui(seed: str = "") -> str:
|
|
"""Factory centralizat (D#14, PRD 5.12 US-001): genereaza un CUI de test unic din seed.
|
|
|
|
Folosit de fixture-urile de test care creeaza conturi via /signup sau create_account
|
|
si au nevoie de un CUI unic per test (altfel unicitatea CUI-ului bloca al doilea signup
|
|
cu acelasi seed in acelasi DB de test).
|
|
|
|
Formatul 'ROTE' + 8 hex-uri e suficient de unic per DB de test (izolata per test).
|
|
"""
|
|
h = hashlib.md5(seed.encode()).hexdigest()[:8].upper()
|
|
return f"ROTE{h}"
|
|
|
|
|
|
def pytest_configure(config):
|
|
"""Markeri custom. `live` = teste care ating endpoint-ul real RAR (opt-in,
|
|
skip implicit; vezi tests/test_live_rar.py). Excludere: `-m 'not live'`."""
|
|
config.addinivalue_line(
|
|
"markers", "live: test live pe RAR test (necesita AUTOPASS_LIVE_RAR=1 + creds reale)"
|
|
)
|