Pipeline
Cette page liste tous les cas de test pour les tâches liées au pipeline de données financières. Les cas de test sont suivis d'une légende explicative.
🗃️ Cas de test
Taux de couverture :
| Statut | ID | Titre |
|---|---|---|
| ● Actif | tc-pipe01 | Import complet avec gestion des devises |
| ● Actif | tc-pipe02 | Nettoyage et validation des données CSV |
| ● Actif | tc-pipe03 | Synchronisation des titres et suppression des obsolètes |
| ● Actif | tc-pipe-fail01 | Gestion d'un CSV corrompu |
| ● Actif | tc-pipe-date01 | Vérification de la logique de date (veille de marché) |
| ● Actif | tc-pipe-csv01 | Nettoyage des quantités CSV (<0.1, nombres avec espaces) |
| ● Actif | tc-pipe-nocsv01 | Absence de repli CSV quand la clé API est présente |
| ● Actif | tc-pipe-date02 | Rattrapage autorisé le lundi matin uniquement après un échec enregistré |
| ● Actif | tc-pipe-date03 | Exécution du lundi bloquée en l'absence d'échec précédent |
| ● Actif | tc-pipe-fail02 | Les exceptions inattendues sont enregistrées en état d'échec pour les décisions suivantes |
| ● Actif | tc-pipe-quota01 | Bornes de classification des modes quota (normal, eco, protection, blocked) |
| ● Actif | tc-pipe-quota02 | Le mode blocked annule l'enrichissement API et émet une alerte quota |
| ● Actif | tc-pipe-quota03 | Le retry cible seulement les titres manquants et ne s'exécute qu'une fois |
| ● Actif | tc-pipe-quota04 | Le mode eco désactive le retry sans alerte quota |
| ● Actif | tc-pipe-quota05 | Le mode protection désactive le retry et envoie une alerte quota distincte |
| ● Actif | tc-pipe-quota06 | Fail-open de lecture quota sur timeout ou erreur de /v1/account |
| ● Actif | tc-pipe-quota07 | La configuration quota absente retombe sur les défauts et journalise l'événement |
| ● Actif | tc-pipe-quota08 | /v1/account est appelé avant la première requête /v2/eod |
| ● Actif | tc-pipe-quota09 | Des seuils quota invalides retombent sur les défauts avec log invalid_thresholds |
| ● Actif | tc-pipe-quota10 | Les transitions de mode sont journalisées via quota_mode_change entre deux runs |
| ● Actif | tc-pipe-quota11 | Si /v1/account est indisponible, le compteur quota local mensuel est utilisé puis mis à jour |
| ● Actif | tc-pipe-smtp01 | Le mode STARTTLS utilise SMTP avec timeout configuré |
| ● Actif | tc-pipe-smtp02 | Le mode SSL utilise le transport SMTP_SSL |
| ● Actif | tc-pipe-smtp03 | Un mode SMTP invalide est fail-open (aucune tentative d'envoi) |
| ● Actif | tc-pipe-smtp04 | Une configuration SMTP incomplète est fail-open (aucune tentative d'envoi) |
| ● Actif | tc-pipe-smtp05 | Le contenu du courriel inclut des instructions (logs + lien de documentation) |
| ● Actif | tc-pipe-ticker01 | L'insertion d'un ticker de longueur standard réussit |
| ● Actif | tc-pipe-ticker02 | L'insertion d'un ticker à la longueur maximale du schéma (255 caractères) réussit |
| ● Actif | tc-pipe-api01 | API Marketstack : Résilience au Timeout |
| ● Actif | tc-pipe-api02 | API Marketstack : Gestion erreur 500 / JSON invalide |
| ● À Faire | Script d'import : fail-fast si les variables d'environnement DB sont absentes (import_data.py) |
|
| ● À Faire | Script d'import : fail-fast en cas d'échec de connexion DB (import_data.py) |
|
| ● À Faire | Script d'import : fail-fast si le CSV source est introuvable (import_data.py) |
|
| ● À Faire | Garde calendrier : l'exécution du dimanche est bloquée (run_full_pipeline) |
|
| ● À Faire | Porte lundi : rattrapage refusé si les conditions ne sont pas remplies (run_full_pipeline) |
|
| ● À Faire | Mode quota blocked : arrêt avant enrichissement et persistance de l'état d'échec | |
| ● À Faire | Échec envoi SMTP : journalise smtp_alert_send_failure et continue en fail-open |
|
| ● À Faire | Erreur API Marketstack irrécoverable : déclenche le chemin d'alerte opérateur API | |
| ● À Faire | Intégrité Données : Vérification UPSERT / Idempotence | |
| ● À Faire | Devise : Robustesse conversion USD vers CAD |
Calcul du taux fonctionnel de cette page : 30 cas actifs / 40 cas définis = 75 %.
ⓘ Légende du statut de couverture
| Statut | Description |
|---|---|
| ● Actif | Le cas de test est implémenté et validé par un test automatisé pytest ou Playwright. |
| ● À Faire | Le cas de test est défini mais n'a pas encore de test automatisé correspondant. |