fix: PRONOTE_URL ignoré à cause du double préfixe env_prefix
Le champ pronote_url dans PronoteSettings avec env_prefix=PRONOTE_ produisait PRONOTE_PRONOTE_URL au lieu de PRONOTE_URL. La variable documentée dans .env.example et tous les guides était donc ignorée. Renomme le champ pronote_url → url pour que le mécanisme standard env_prefix + nom de champ produise PRONOTE_URL. Toutes les références au champ settings.pronote.pronote_url sont mises à jour vers settings.pronote.url dans le code de production et les tests. Changements : - settings.py : champ pronote_url → url, retrait du contournement alias - client.py : self._settings.pronote_url → self._settings.url - fallback.py : pronote.pronote_url → pronote.url - tests : mises à jour des constructions et assertions, test de régression pour le mapping PRONOTE_URL → url Co-authored-by: opencode/coder litellm/coder@agents.invalid Co-authored-by: opencode/test-engineer litellm/test-engineer@agents.invalid
This commit is contained in:
@@ -37,7 +37,7 @@ class PronoteSettings(BaseSettings):
|
||||
username: str | None = None
|
||||
password: SecretStr | None = None
|
||||
ent: str | None = None
|
||||
pronote_url: str | None = None
|
||||
url: str | None = None
|
||||
account_type: Literal["student", "parent"] = "parent"
|
||||
agenda_source: Literal["auto", "ical", "pronotepy"] = "auto"
|
||||
homework_source: Literal["auto", "ical", "pronotepy"] = "auto"
|
||||
|
||||
@@ -164,17 +164,17 @@ class PronoteClient:
|
||||
|
||||
:return: Le client ``pronotepy`` connecté.
|
||||
:rtype: pronotepy.Client
|
||||
:raises ValueError: Si ``pronote_url``, ``username`` ou ``password``
|
||||
:raises ValueError: Si ``url``, ``username`` ou ``password``
|
||||
est manquant, ou si l'ENT fourni est inconnu.
|
||||
:raises pronotepy.PronoteAPIError: Si la connexion à Pronote échoue.
|
||||
"""
|
||||
if self._client is None:
|
||||
pronote_url = self._settings.pronote_url
|
||||
url = self._settings.url
|
||||
username = self._settings.username
|
||||
password = self._settings.password
|
||||
ent = self._settings.ent
|
||||
if pronote_url is None or username is None or password is None:
|
||||
raise ValueError("pronote_url, username et password sont requis pour pronotepy")
|
||||
if url is None or username is None or password is None:
|
||||
raise ValueError("url, username et password sont requis pour pronotepy")
|
||||
resolver = _resolve_ent(ent) if ent is not None else None
|
||||
client_class: type[pronotepy.Client] = (
|
||||
pronotepy.ParentClient
|
||||
@@ -182,7 +182,7 @@ class PronoteClient:
|
||||
else pronotepy.Client
|
||||
)
|
||||
self._client = client_class(
|
||||
pronote_url=pronote_url,
|
||||
pronote_url=url,
|
||||
username=username,
|
||||
password=password.get_secret_value(),
|
||||
ent=resolver,
|
||||
|
||||
@@ -149,13 +149,13 @@ class PronoteFetcher:
|
||||
def _is_pronotepy_configured(self) -> bool:
|
||||
"""Vérifie que la source pronotepy est entièrement configurée.
|
||||
|
||||
:return: ``True`` si ``pronote_url``, ``username`` et ``password``
|
||||
:return: ``True`` si ``url``, ``username`` et ``password``
|
||||
sont tous définis, ``False`` sinon.
|
||||
:rtype: bool
|
||||
"""
|
||||
pronote = self._settings.pronote
|
||||
return (
|
||||
pronote.pronote_url is not None
|
||||
pronote.url is not None
|
||||
and pronote.username is not None
|
||||
and pronote.password is not None
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user