fix: PRONOTE_ENT optionnel pour les connexions pronotepy directes #2
Reference in New Issue
Block a user
Delete Branch "fix/pronotepy-ent-optional"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
PRONOTE_ENTétait incorrectement traité comme obligatoire pour les connexionspronotepy, bloquant le pipeline quand l'ENT n'est pas configuré. La spécification (GUIDE_DEV_PYTHON.md §3.1.2) indique pourtant : «PRONOTE_ENTreste optionnel pour une connexion directe ».Bugs corrigés
pronotepyexplicite sansPRONOTE_ENT: erreur« pronote_url, username, password et ent sont requis pour pronotepy »alors que les credentials sont présents.autosans iCal niPRONOTE_ENT: erreur« ni la source iCal ni pronotepy n'est configurée »— le repli verspronotepyétait bloqué par le même prérequis incorrect surent.Changements
Production
pronote_sync/sources/pronote/client.py(_connect()) :entretiré des champs obligatoires, résolution ENT conditionnelle (_resolve_ent(ent) if ent is not None else None),ent=Nonetransmis àpronotepypour les connexions directes. Docstring mis à jour.pronote_sync/sources/pronote/fallback.py(_is_pronotepy_configured()) :pronote.ent is not Noneretiré du prédicat. Docstring mis à jour.Tests (10 tests de régression, RED→GREEN)
tests/unit/test_pronote_client.py: connexion sans ENT, credentials manquants (message sansent), résolution ENT quand fourni, ENT inconnu rejeté.tests/unit/test_fallback.py:_is_pronotepy_configured()sans ENT,autosans iCal ni ENT (agenda + devoirs), repli iCal→pronotepy sans ENT (agenda + devoirs).Validation
ruff check+ruff format --check: passésmypy: passé (erreur interne préexistante surical.py:99, non liée)bandit: 0 findingpytest --cov: 646 passed, 95.67% de couverturepre-commit: tous les hooks passent