From fe58222ce072c3223d2c8c04862acb453636af9a Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Tue, 17 Jan 2023 12:35:19 -0300 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20tests.=20Cas=20geii84=20OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/unit/cursus_but_geii_lyon.yaml | 93 ++++++++++++++++++++++++++++ tests/unit/yaml_setup.py | 9 ++- 2 files changed, 100 insertions(+), 2 deletions(-) diff --git a/tests/unit/cursus_but_geii_lyon.yaml b/tests/unit/cursus_but_geii_lyon.yaml index 1230273c..e625010c 100644 --- a/tests/unit/cursus_but_geii_lyon.yaml +++ b/tests/unit/cursus_but_geii_lyon.yaml @@ -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 \ No newline at end of file diff --git a/tests/unit/yaml_setup.py b/tests/unit/yaml_setup.py index 12e9d0ce..99729846 100644 --- a/tests/unit/yaml_setup.py +++ b/tests/unit/yaml_setup.py @@ -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: