Tests YAML: permet d'indiquer la décision de jury sur les UEs

This commit is contained in:
Emmanuel Viennet 2022-12-24 19:21:05 -03:00 committed by iziram
parent 9566551e7e
commit acc1ecf906
3 changed files with 17 additions and 5 deletions

View File

@ -173,6 +173,7 @@ Etudiants:
"UE2.4-C4": "UE2.4-C4":
codes: [ "AJ", "..." ] codes: [ "AJ", "..." ]
code_valide: AJ code_valide: AJ
decision_jury: ADJ # le jury force la décision ADJ
moy_ue: 08.55 moy_ue: 08.55
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1) decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1)
"UE1.1-C1": "UE1.1-C1":

View File

@ -63,13 +63,15 @@ def test_but_jury_GMP_lm(test_client):
formsemestres = FormSemestre.query.order_by( formsemestres = FormSemestre.query.order_by(
FormSemestre.date_debut, FormSemestre.semestre_id FormSemestre.date_debut, FormSemestre.semestre_id
).all() ).all()
# Vérifie les deca de tous les semestres: # Vérifie les deca de tous les semestres:
for formsemestre in formsemestres: for formsemestre in formsemestres:
_check_deca(formsemestre) _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: for formsemestre in formsemestres:
formsemestre_validation_auto_but(formsemestre, only_adm=False) formsemestre_validation_auto_but(formsemestre, only_adm=False)
# Vérifie résultats attendus: # Vérifie résultats attendus:
for formsemestre in formsemestres: for formsemestre in formsemestres:
_test_but_jury(formsemestre, doc) _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): def _test_but_jury(formsemestre: FormSemestre, doc: dict):
"""Test jurys """Test jurys
Vérifie les champs de DecisionsProposeesAnnee et UEs Vérifie les champs de DecisionsProposeesAnnee et UEs
""" """
for etud in formsemestre.etuds: for etud in formsemestre.etuds:
deca = DecisionsProposeesAnnee(etud, formsemestre) deca = DecisionsProposeesAnnee(etud, formsemestre)

View File

@ -340,7 +340,9 @@ def _check_codes_jury(codes: list[str], codes_att: list[str]):
def _check_decisions_ues( def _check_decisions_ues(
decisions_ues: dict[int, DecisionsProposeesUE], decisions_ues_att: dict[str:dict] 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(): for acronyme, dec_ue_att in decisions_ues_att.items():
# retrouve l'UE # retrouve l'UE
ues_d = [ ues_d = [
@ -357,8 +359,14 @@ def _check_decisions_ues(
if attr in dec_ue_att: if attr in dec_ue_att:
if getattr(dec_ue, attr) != dec_ue_att[attr]: if getattr(dec_ue, attr) != dec_ue_att[attr]:
raise ValueError( 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( def _check_decisions_rcues(
@ -394,7 +402,8 @@ def _check_decisions_rcues(
def compare_decisions_annee(deca: DecisionsProposeesAnnee, deca_att: dict): 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 est le résultat calculé par ScoDoc
deca_att est un dict lu du YAML deca_att est un dict lu du YAML
""" """