test(pronote): constituer un corpus anonymisé d’exports iCal et réponses API #29
Notifications
Due Date
No due date set.
Blocks
#27 fix(pronote): préserver les cours déplacés et les changements de salle
AntoineVe/college-infos
#28 fix(ical): fiabiliser l’extraction des devoirs et événements Pronote 2026
AntoineVe/college-infos
Reference: AntoineVe/college-infos#29
Reference in New Issue
Block a user
Objectif
Construire un corpus de fixtures anonymisées et versionnées permettant de vérifier le parsing Pronote sans connexion réelle, et de détecter rapidement les régressions liées aux versions Pronote ou aux variantes d'établissement.
Constat
Les fixtures iCal actuelles couvrent les chemins nominaux et quelques annulations/devoirs, mais ne documentent pas suffisamment les variantes de schéma rencontrées dans les exports Pronote récents. Les tickets #20, #21, #27 et #28 montrent que les tests doivent distinguer :
pronotepy;Sources et besoins identifiés
La documentation de protocole de pronotepy rappelle que les réponses Pronote sont des enveloppes JSON chiffrées/compressées et que les demandes d'emploi du temps utilisent des ressources parent/enfant et une semaine.
Des exports Pronote 2026 observés par pronote-digest ajoutent des cas importants pour l'iCal :
Jours fériés;Professeur(s),Salle(s),Partie(s) de classe;Périmètre attendu
Corpus iCal
Ajouter des fixtures minimales et anonymisées couvrant au moins :
Réponses API
Ajouter, si le format peut être isolé sans secret :
PageEmploiDuTempsparent avec ressource enfant ;PageCahierDeTexteavec plusieurs travaux, dates « Pour le »/« Donné le », matière et pièces jointes ;PageActualitescode 20 pour vérifier le mode dégradé sans exécuter de login ;nulldocumentés.Les payloads doivent être réduits aux champs nécessaires et ne jamais contenir de token, identifiant, nom, établissement ou contenu personnel réel.
Format et maintenance
pronotepyet pour une éventuelle source alternative.Critères d'acceptation
pronotepypeut être rejoué sur le corpus sans authentification réelle.Conclusion opérationnelle
Prioriser ce ticket comme fondation de #27 et #28. Tant qu'un export réel anonymisé ne peut pas être rejoué localement, une correction de parsing Pronote reste difficile à prouver et risque de fonctionner uniquement sur les deux fixtures nominales actuelles.