# tests — Test Suite ## Purpose 230+ teste: unit pe fiecare modul + 8 scenarii de regresie FSM pe imagini reale + env loader. Rulează headless pe Linux/WSL (de aceea FSM & config nu importă cv2). ## Ownership Tot `tests/`. Fiecare `test_.py` oglindește un modul din `src/atm/`. ## Local Contracts - Un modul nou în `src/atm/` ⇒ un `test_.py` corespondent. - **`test_scenarios_regression.py`** rulează FSM-ul peste secvențele din `calibration/scenarios.json` pe frame-uri reale. Schimbi FSM ⇒ adaugă/actualizează scenariu acolo (vezi `calibration/AGENTS.md`). - **`test_env_loader.py`** monkeypatchează env-ul; păstrează regula „shell wins" din `config._ensure_env_loaded`. - Testele nu trebuie să atingă rețeaua reală (Telegram/Discord) — mock-uiește. ## Work Guidance - Rulează suita completă înainte de orice commit care atinge `src/atm/`. - Dacă un test cere Pillow/OpenCV pe checkout-ul Windows, folosește venv-ul repo (vezi `scripts/AGENTS.md`). ## Verification ```bash pytest -q # toată suita pytest tests/test_scenarios_regression.py -v # FSM pe imagini reale ``` ## Child DOX Index (none — leaf)