fix: PRONOTE_URL ignoré à cause du double préfixe env_prefix #4
Reference in New Issue
Block a user
Delete Branch "fix/pronote-url-env-mapping"
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_URLétait ignoré parPronoteSettingsà cause d'un double préfixe :env_prefix="PRONOTE_"+ champpronote_urlproduisait la variablePRONOTE_PRONOTE_URLau lieu dePRONOTE_URL. La variable documentée dans.env.exampleet tous les guides n'était donc jamais chargée.Cause racine
Le champ
pronote_urldansPronoteSettingsest redondant avec le préfixePRONOTE_. Avecenv_prefix="PRONOTE_":ical_url→PRONOTE_ICAL_URL✅username→PRONOTE_USERNAME✅pronote_url→PRONOTE_PRONOTE_URL❌ (double préfixe)Correction
Renommage du champ
pronote_url→urldansPronoteSettings. Le mécanisme standardenv_prefix + nom de champproduit alorsPRONOTE_URLsans aucune indirection. Toutes les référencessettings.pronote.pronote_urlsont mises à jour verssettings.pronote.url.Cette approche a été arbitrée par @architect comme préférable à un contournement par
validation_alias(qui introduisait 8 erreurs mypy et maintenait une variablePRONOTE_PRONOTE_URLnon documentée).Changements
Production
pronote_sync/config/settings.py— champpronote_url→url, retrait du contournementAliasChoices/populate_by_namepronote_sync/sources/pronote/client.py—self._settings.pronote_url→self._settings.urlpronote_sync/sources/pronote/fallback.py—pronote.pronote_url→pronote.urlTests
tests/unit/test_config.py— test de régressionPRONOTE_URL→settings.pronote.urltests/unit/test_fallback.py— constructions et assertions mises à jourtests/unit/test_pronote_client.py— constructions et assertions mises à jourValidation
ruff check+ruff format --check: passésmypy .: 0 erreur, 0type: ignoreajoutébandit: 0 findingpytest --cov: 647 passed, 95.67% de couverturepre-commit: tous les hooks passentPRONOTE_URL→settings.pronote.urlvérifié