Files
rpa_vision_v3/requirements-ci.txt
Dom eded968c70
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 13s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
ci(fix): RPA_API_TOKEN + Flask-SocketIO dans CI
Deux fixes pour que la CI collecte tous les tests unitaires :

1. RPA_API_TOKEN défini dans les env du workflow
   - Sans : agent_v0/server_v1/api_stream.py fait sys.exit(1)
     au module load (fail-closed P0-C), ce qui casse la collection
     de tests/unit/test_env_setup.py (qui importe api_stream)
   - Avec : token bidon qui permet aux imports de passer,
     les tests mockent les vraies requêtes

2. Flask-SocketIO + deps socketio ajoutés à requirements-ci.txt
   - web_dashboard/app.py importe `from flask_socketio import SocketIO`
   - test_dashboard_routes.py importait app -> ModuleNotFoundError en CI
   - Ces packages étaient explicitement exclus avant, mais sont
     nécessaires pour les 37 tests du dashboard

Résultat local : 1723 passed, 39 failed (dette pré-existante
documentée dans l'audit — contamination entre tests, à traiter
séparément).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 21:12:58 +02:00

118 lines
3.3 KiB
Plaintext

# ------------------------------------------------------------------
# requirements-ci.txt — Dépendances pour la CI (tests unitaires)
# ------------------------------------------------------------------
# Objectif : installer le minimum pour que `pytest tests/unit/`
# passe sans GPU, sans Ollama, sans torch, sans FAISS GPU.
#
# Les tests lourds (torch, transformers, CLIP, FAISS GPU, doctr,
# Ollama) sont marqués `slow`, `gpu` ou `integration` et exclus
# via `-m "not slow and not gpu and not integration"`.
#
# Versions alignées sur requirements.txt pour éviter les surprises
# lors du runtime local, mais allégées (CPU-only, headless).
# ------------------------------------------------------------------
# --- Runtime core ---
pydantic==2.12.5
pydantic_core==2.41.5
python-dotenv==1.0.0
PyYAML==6.0.1
click==8.3.1
typing_extensions==4.15.0
annotated-types==0.7.0
# --- Web frameworks (utilisés par les tests API/dashboard) ---
fastapi==0.128.0
starlette==0.50.0
uvicorn==0.40.0
Flask==3.0.0
Flask-Caching==2.1.0
Flask-Cors==4.0.0
Flask-SQLAlchemy==3.1.1
Flask-SocketIO==5.3.5
Flask-Migrate==4.1.0
python-socketio==5.10.0
python-engineio==4.8.0
simple-websocket==1.1.0
wsproto==1.3.2
Werkzeug==3.1.5
Jinja2==3.1.6
itsdangerous==2.2.0
blinker==1.9.0
bidict==0.23.1
# --- DB (tests auth/audit/extraction) ---
SQLAlchemy==2.0.23
alembic==1.18.4
# --- HTTP clients ---
httpx==0.28.1
requests==2.32.5
urllib3==2.6.3
certifi==2026.1.4
idna==3.11
charset-normalizer==3.4.4
h11==0.16.0
httpcore==1.0.9
anyio==4.12.1
sniffio==1.3.1; python_version >= "3.7"
# --- Sécurité (test_security_*, auth vault, TOTP) ---
cryptography==46.0.3
cffi==2.0.0
pycparser==2.23
# --- Images (opencv-python-headless au lieu de opencv-python pour CI) ---
pillow==12.1.0
opencv-python-headless==4.12.0.88
numpy==2.2.6
# --- Pytest et plugins ---
pytest==9.0.2
pytest-asyncio==1.3.0
pytest-cov==4.1.0
pytest-flask==1.3.0
pytest-mock==3.12.0
iniconfig==2.3.0
pluggy==1.6.0
packaging==25.0
# --- Couverture ---
coverage==7.13.1
# --- Utilitaires divers (imports indirects fréquents) ---
python-dateutil==2.8.2
six==1.17.0
attrs==25.4.0
jsonschema==4.20.0
jsonschema-specifications==2025.9.1
referencing==0.37.0
rpds-py==0.30.0
RapidFuzz==3.14.3
regex==2025.11.3
python-multipart==0.0.21
validators==0.35.0
prometheus_client==0.23.1
psutil==7.2.1
filelock==3.20.3
tqdm==4.67.1
# --- Hypothesis (property tests, si inclus plus tard) ---
hypothesis==6.92.1
sortedcontainers==2.4.0
# --- NOTES ---
# Volontairement absents :
# - torch / torchvision / triton / nvidia-* → GPU, hors CI
# - transformers / accelerate / tokenizers → chargent torch
# - open_clip_torch / timm → idem
# - faiss-cpu → binaire lourd (~90 Mo),
# utilisé uniquement en
# tests `slow` / `integration`
# - ollama → nécessite serveur Ollama
# - python-doctr / pypdfium2 → OCR, tests `slow`
# - pynput / pyautogui / mss / PyQt5 → GUI / simulation I/O
# (anciennement exclus python-socketio/Flask-SocketIO : réintégrés
# le 15 avril 2026 — test_dashboard_routes en dépend via app.py)
# - eds-nlp / spacy → modèles NLP hors CI