ci(fix): RPA_API_TOKEN + Flask-SocketIO dans CI
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
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
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>
This commit is contained in:
@@ -33,6 +33,10 @@ env:
|
|||||||
# Les modules d'exécution lisent parfois ces vars ; valeurs neutres en CI.
|
# Les modules d'exécution lisent parfois ces vars ; valeurs neutres en CI.
|
||||||
RPA_VISION_CI: "1"
|
RPA_VISION_CI: "1"
|
||||||
RPA_AUTH_VAULT_PATH: "/tmp/ci_vault.enc"
|
RPA_AUTH_VAULT_PATH: "/tmp/ci_vault.enc"
|
||||||
|
# api_stream.py a un fail-closed P0-C : si RPA_API_TOKEN absent, sys.exit(1)
|
||||||
|
# au module load. On fournit un token bidon pour que les imports passent en CI.
|
||||||
|
# (Le token n'est jamais utilisé réellement — les tests mockent les requêtes.)
|
||||||
|
RPA_API_TOKEN: "ci_test_token_not_used_for_real_auth_just_to_pass_import_check_0123456789"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
|
|||||||
@@ -29,10 +29,17 @@ Flask==3.0.0
|
|||||||
Flask-Caching==2.1.0
|
Flask-Caching==2.1.0
|
||||||
Flask-Cors==4.0.0
|
Flask-Cors==4.0.0
|
||||||
Flask-SQLAlchemy==3.1.1
|
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
|
Werkzeug==3.1.5
|
||||||
Jinja2==3.1.6
|
Jinja2==3.1.6
|
||||||
itsdangerous==2.2.0
|
itsdangerous==2.2.0
|
||||||
blinker==1.9.0
|
blinker==1.9.0
|
||||||
|
bidict==0.23.1
|
||||||
|
|
||||||
# --- DB (tests auth/audit/extraction) ---
|
# --- DB (tests auth/audit/extraction) ---
|
||||||
SQLAlchemy==2.0.23
|
SQLAlchemy==2.0.23
|
||||||
@@ -105,5 +112,6 @@ sortedcontainers==2.4.0
|
|||||||
# - ollama → nécessite serveur Ollama
|
# - ollama → nécessite serveur Ollama
|
||||||
# - python-doctr / pypdfium2 → OCR, tests `slow`
|
# - python-doctr / pypdfium2 → OCR, tests `slow`
|
||||||
# - pynput / pyautogui / mss / PyQt5 → GUI / simulation I/O
|
# - pynput / pyautogui / mss / PyQt5 → GUI / simulation I/O
|
||||||
# - python-socketio / Flask-SocketIO → WS, tests intégration
|
# (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
|
# - eds-nlp / spacy → modèles NLP hors CI
|
||||||
|
|||||||
Reference in New Issue
Block a user