Amélioration tests. Cas geii84 OK

This commit is contained in:
Emmanuel Viennet 2023-01-17 12:35:19 -03:00
parent 35ccdbf39e
commit fe58222ce0
2 changed files with 100 additions and 2 deletions

View File

@ -276,3 +276,96 @@ Etudiants:
code_valide: AJ
moy_ue: 7.00
decision_annee: AJ
geii84:
prenom: etugeii84
civilite: M
formsemestres:
S1:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"S1.1": 11.95
"S1.2": 12.76
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 2
nb_rcue_annee: 0
decisions_ues:
"UE11":
codes: [ "ADM", "..." ]
code_valide: ADM
decision_jury: ADM
moy_ue: 11.95
"UE12":
codes: [ "ADM", "..." ]
code_valide: ADM
decision_jury: ADM
moy_ue: 12.76
S2:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"S2.1": 7.83
"S2.2": 8.15
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 2
nb_rcue_annee: 2
valide_moitie_rcue: False
codes: [ "RED", "..." ]
decisions_ues:
"UE21":
codes: [ "AJ", "..." ]
code_valide: AJ
decision_jury: AJ
moy_ue: 7.83
"UE22":
codes: [ "CMP", "..." ]
code_valide: CMP
moy_ue: 8.15
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1)
"UE11":
code_valide: AJ
decision_jury: AJ
rcue:
moy_rcue: 9.89
est_compensable: False
"UE12":
code_valide: CMP
decision_jury: CMP
rcue:
moy_rcue: 10.455 # ! attention à la précision
est_compensable: True
decision_annee: RED
S1-red:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"S1.1": 13.71
"S1.2": 9.50
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 2
nb_rcue_annee: 0
decisions_ues:
"UE11":
codes: [ "ADM", "..." ]
code_valide: ADM
decision_jury: ADM
moy_ue: 13.71
"UE12":
codes: [ "AJ", "ADJ", "RAT", "DEF", "ABAN", "ADJR", "ATJ", "DEM", "UEBSL" ]
code_valide: AJ # c'est l'UE12 du S1 de l'année prec. qui est ADM
moy_ue: 9.5 # moyenne non capitalisée ici
moy_ue_with_cap: 12.76
# Pas de décisions RCUE
# "UE11": -- non applicable
# code_valide: ADM -- non applicable
# decision_jury: ADM -- non applicable
# rcue: -- non applicable
# moy_rcue: 10.94 -- non applicable
# est_compensable: False -- non applicable
# "UE12": -- non applicable
# code_valide: ADM -- non applicable
# decision_jury: ADM -- non applicable
# rcue: -- non applicable
# moy_rcue: 10.94 -- non applicable
# est_compensable: False -- non applicable
decision_annee: AJ

View File

@ -374,7 +374,7 @@ def setup_from_yaml(filename: str) -> dict:
def _check_codes_jury(codes: list[str], codes_att: list[str]):
"""Vérifie (assert) la liste des codes
l'ordre n'a pas d'importance ici.
Si codes_att contient un "...", on se contente de vérifie que
Si codes_att contient un "...", on se contente de vérifier que
les codes de codes_att sont tous présents dans codes.
"""
codes_set = set(codes)
@ -404,13 +404,18 @@ def _check_decisions_ues(
if "codes" in dec_ue_att:
_check_codes_jury(dec_ue.codes, dec_ue_att["codes"])
for attr in ("moy_ue", "moy_ue_with_cap", "explanation", "code_valide"):
for attr in ("explanation", "code_valide"):
if attr in dec_ue_att:
if getattr(dec_ue, attr) != dec_ue_att[attr]:
raise ValueError(
f"""Erreur: décision d'UE: {dec_ue.ue.acronyme
} : champs {attr}={getattr(dec_ue, attr)} != attendu {dec_ue_att[attr]}"""
)
for attr in ("moy_ue", "moy_ue_with_cap"):
if attr in dec_ue_att:
assert (
abs(getattr(dec_ue, attr) - dec_ue_att[attr]) < scu.NOTES_PRECISION
)
# Force décision de jury:
code_manuel = dec_ue_att.get("decision_jury")
if code_manuel is not None: