test+docs(M4): tests get_lessons/get_homeworks + repli unique + doc sync
Tests:
- test_pronote_client : get_lessons/get_homeworks success + error
propagation, ENT resolution, factory parent/student, mode dégradé
messages/informations (ConnectionError, TimeoutError)
- test_fallback : repli unique ICAL→pronotepy et PRONOTEPY→iCal,
filtre target_date, fetch_messages log + re-raise sans secrets,
aucune source configurée → PipelineCriticalError
- 59 tests passent (16 client + 17 fallback + 26 iCal)
Documentation:
- TODO.md : 7 items M4 cochés, contrat repli corrigé (unique, non
réciproque) selon décision D4
- GUIDE_DEV_PYTHON.md : get_agenda_fallback → get_lessons/get_homeworks,
pronote_url/account_type ajoutés au modèle + env vars + .env.example,
AgendaSource StrEnum, §5.1.8 fallback contract mis à jour (repli unique)
Co-authored-by: opencode/test-engineer <test-engineer@agents.invalid>
Co-authored-by: opencode/tech-writer <tech-writer@agents.invalid>