From f99dc33ea88622b9b881e9be76432692f64f7dbe Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sat, 24 Dec 2022 19:21:05 -0300 Subject: [PATCH] =?UTF-8?q?Tests=20YAML:=20permet=20d'indiquer=20la=20d?= =?UTF-8?q?=C3=A9cision=20de=20jury=20sur=20les=20UEs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/unit/cursus_but_gmp_iutlm.yaml | 1 + tests/unit/test_but_jury.py | 6 ++++-- tests/unit/yaml_setup.py | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/unit/cursus_but_gmp_iutlm.yaml b/tests/unit/cursus_but_gmp_iutlm.yaml index a8c8547593..47e0cbf8ef 100644 --- a/tests/unit/cursus_but_gmp_iutlm.yaml +++ b/tests/unit/cursus_but_gmp_iutlm.yaml @@ -173,6 +173,7 @@ Etudiants: "UE2.4-C4": codes: [ "AJ", "..." ] code_valide: AJ + decision_jury: ADJ # le jury force la décision ADJ moy_ue: 08.55 decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1) "UE1.1-C1": diff --git a/tests/unit/test_but_jury.py b/tests/unit/test_but_jury.py index 825097ecf7..15a593429f 100644 --- a/tests/unit/test_but_jury.py +++ b/tests/unit/test_but_jury.py @@ -63,13 +63,15 @@ def test_but_jury_GMP_lm(test_client): formsemestres = FormSemestre.query.order_by( FormSemestre.date_debut, FormSemestre.semestre_id ).all() + # Vérifie les deca de tous les semestres: for formsemestre in formsemestres: _check_deca(formsemestre) - # Saisie de toutes les décisions de jury + # Saisie de toutes les décisions de jury qui ne le seraient pas déjà for formsemestre in formsemestres: formsemestre_validation_auto_but(formsemestre, only_adm=False) + # Vérifie résultats attendus: for formsemestre in formsemestres: _test_but_jury(formsemestre, doc) @@ -118,7 +120,7 @@ def _check_deca(formsemestre: FormSemestre, etud: Identite = None): def _test_but_jury(formsemestre: FormSemestre, doc: dict): """Test jurys - Vérifie les champs de DecisionsProposeesAnnee et UEs + Vérifie les champs de DecisionsProposeesAnnee et UEs """ for etud in formsemestre.etuds: deca = DecisionsProposeesAnnee(etud, formsemestre) diff --git a/tests/unit/yaml_setup.py b/tests/unit/yaml_setup.py index c8f19577d9..535fcdc7c6 100644 --- a/tests/unit/yaml_setup.py +++ b/tests/unit/yaml_setup.py @@ -340,7 +340,9 @@ def _check_codes_jury(codes: list[str], codes_att: list[str]): def _check_decisions_ues( decisions_ues: dict[int, DecisionsProposeesUE], decisions_ues_att: dict[str:dict] ): - """Vérifie les décisions d'UE""" + """Vérifie les décisions d'UE + pui enregistre décision manuelle si indiquée. + """ for acronyme, dec_ue_att in decisions_ues_att.items(): # retrouve l'UE ues_d = [ @@ -357,8 +359,14 @@ def _check_decisions_ues( 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]}" + f"""Erreur: décision d'UE: {dec_ue.ue.acronyme + } : champs {attr}={getattr(dec_ue, attr)} != attendu {dec_ue_att[attr]}""" ) + # Force décision de jury: + code_manuel = dec_ue_att.get("decision_jury") + if code_manuel is not None: + assert code_manuel in dec_ue.codes + dec_ue.record(code_manuel) def _check_decisions_rcues( @@ -394,7 +402,8 @@ def _check_decisions_rcues( def compare_decisions_annee(deca: DecisionsProposeesAnnee, deca_att: dict): - """Vérifie que les résultats de jury calculés sont ceux attendus. + """Vérifie que les résultats de jury calculés sont ceux attendus, + puis enregistre les décisions manuelles indiquées dans le YAML. deca est le résultat calculé par ScoDoc deca_att est un dict lu du YAML """