fix: PRONOTE_ENT optionnel pour les connexions pronotepy directes
PRONOTE_ENT était incorrectement traité comme obligatoire, bloquant le pipeline quand l'ENT n'est pas configuré. Permet désormais la connexion directe à Pronote sans ENT (ent=None), conformément à la spécification (GUIDE_DEV_PYTHON.md §3.1.2). Corrige deux bugs : - Mode pronotepy explicite sans PRONOTE_ENT : erreur « ent sont requis » - Mode auto sans iCal ni PRONOTE_ENT : erreur « ni la source iCal ni pronotepy n'est configurée » alors que les credentials sont présents Changements : - client.py : _connect() n'exige plus ent, résolution conditionnelle - fallback.py : _is_pronotepy_configured() sans vérifier ent - tests : 10 tests de régression (RED→GREEN) 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:
@@ -155,16 +155,17 @@ class PronoteClient:
|
||||
"""Crée et connecte le client ``pronotepy`` (connexion paresseuse).
|
||||
|
||||
Le client est créé une seule fois puis réutilisé pour les appels
|
||||
suivants. Le nom d'ENT est résolu via :func:`_resolve_ent` et le
|
||||
type de compte (``student`` ou ``parent``) détermine la classe de
|
||||
client utilisée. L'erreur de connexion est relancée sans
|
||||
journalisation, la méthode publique appelante étant responsable
|
||||
de la journaliser.
|
||||
suivants. Le nom d'ENT, s'il est configuré, est résolu via
|
||||
:func:`_resolve_ent` ; en l'absence d'ENT, ``ent=None`` est transmis
|
||||
à ``pronotepy`` pour une connexion directe. Le type de compte
|
||||
(``student`` ou ``parent``) détermine la classe de client utilisée.
|
||||
L'erreur de connexion est relancée sans journalisation, la méthode
|
||||
publique appelante étant responsable de la journaliser.
|
||||
|
||||
:return: Le client ``pronotepy`` connecté.
|
||||
:rtype: pronotepy.Client
|
||||
:raises ValueError: Si ``pronote_url``, ``username``, ``password``
|
||||
ou ``ent`` est manquant, ou si l'ENT est inconnu.
|
||||
:raises ValueError: Si ``pronote_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:
|
||||
@@ -172,11 +173,9 @@ class PronoteClient:
|
||||
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 or ent is None:
|
||||
raise ValueError(
|
||||
"pronote_url, username, password et ent sont requis pour pronotepy"
|
||||
)
|
||||
resolver = _resolve_ent(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")
|
||||
resolver = _resolve_ent(ent) if ent is not None else None
|
||||
client_class: type[pronotepy.Client] = (
|
||||
pronotepy.ParentClient
|
||||
if self._settings.account_type == "parent"
|
||||
|
||||
Reference in New Issue
Block a user