forked from ScoDoc/ScoDoc
Tests unitaires yaml: check des RCUEs
This commit is contained in:
parent
d05ea4f002
commit
3cdc4b207a
@ -326,7 +326,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
)
|
||||
"vrai si l'année est réussie, tous niveaux validables ou validés par le jury"
|
||||
self.valide_moitie_rcue = self.nb_validables > (self.nb_competences // 2)
|
||||
# Peut passer si plus de la moitié validables et tous > 8
|
||||
"Peut passer si plus de la moitié validables et tous > 8"
|
||||
self.passage_de_droit = self.valide_moitie_rcue and (self.nb_rcues_under_8 == 0)
|
||||
# XXX TODO ajouter condition pour passage en S5
|
||||
|
||||
|
@ -139,10 +139,12 @@ Etudiants:
|
||||
"SAÉ 1.01": 8 # UE11 ratée
|
||||
"SAÉ 1.02": 9 # UE12 ratée
|
||||
"SAÉ 1.SEE.03": 18 # UE13 => sera capitalisée
|
||||
"SAÉ 1.SEE.04": 7 # UE14 ratée
|
||||
"SAÉ 1.SEE.04": 7.5 # UE14 ratée
|
||||
attendu: # les codes jury que l'on doit vérifier
|
||||
deca: # decision année
|
||||
passage_de_droit: False
|
||||
nb_competences: 4
|
||||
nb_rcue_annee: 0 # pas de RCUE en S1
|
||||
# jury S1, pas de décision annuelle
|
||||
decisions_ues:
|
||||
"UE 11":
|
||||
@ -168,6 +170,10 @@ Etudiants:
|
||||
"SAE24.SEE": 12 # UE24 SEE ok, mais ne compense pas
|
||||
attendu:
|
||||
deca:
|
||||
passage_de_droit: False
|
||||
nb_competences: 4
|
||||
nb_rcue_annee: 4
|
||||
valide_moitie_rcue: False # ici valide 2/2, pas plus de la moitié
|
||||
passage_de_droit: False
|
||||
code: ["RED", "..."]
|
||||
code_valide: "RED"
|
||||
@ -181,7 +187,12 @@ Etudiants:
|
||||
code_valide: ADM
|
||||
"UE 24 SEE":
|
||||
code_valide: ADM
|
||||
|
||||
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE
|
||||
"UE 11":
|
||||
code_valide: AJ
|
||||
rcue:
|
||||
moy_rcue: 8.5
|
||||
est_compensable: False
|
||||
|
||||
S3:
|
||||
parcours: SEE
|
||||
|
@ -15,7 +15,11 @@ from app import db
|
||||
|
||||
from app.auth.models import User
|
||||
from app.but.import_refcomp import orebut_import_refcomp
|
||||
from app.but.jury_but import DecisionsProposeesAnnee, DecisionsProposeesUE
|
||||
from app.but.jury_but import (
|
||||
DecisionsProposeesAnnee,
|
||||
DecisionsProposeesRCUE,
|
||||
DecisionsProposeesUE,
|
||||
)
|
||||
from app.models import (
|
||||
ApcNiveau,
|
||||
ApcParcours,
|
||||
@ -354,6 +358,35 @@ def _check_decisions_ues(
|
||||
assert getattr(dec_ue, attr) == dec_ue_att[attr]
|
||||
|
||||
|
||||
def _check_decisions_rcues(
|
||||
decisions_rcues: list[DecisionsProposeesRCUE], decisions_rcues_att: dict
|
||||
):
|
||||
"Vérifie les décisions d'RCUEs"
|
||||
for acronyme, dec_rcue_att in decisions_rcues_att.items():
|
||||
# retrouve la décision RCUE à partir de l'acronyme de la 1er UE
|
||||
rcues_d = [
|
||||
dec_rcue
|
||||
for dec_rcue in decisions_rcues
|
||||
if dec_rcue.rcue.ue_1.acronyme == acronyme
|
||||
]
|
||||
assert len(rcues_d) == 1 # un et un seul RCUE avec l'UE d'acronyme indiqué
|
||||
dec_rcue = rcues_d[0]
|
||||
if "codes" in dec_rcue_att:
|
||||
_check_codes_jury(dec_rcue.codes, dec_rcue_att["codes"])
|
||||
for attr in ("explanation", "code_valide"):
|
||||
if attr in dec_rcue_att:
|
||||
assert getattr(dec_rcue, attr) == dec_rcue_att[attr]
|
||||
# Descend dans le RCUE:
|
||||
if "rcue" in dec_rcue_att:
|
||||
if "moy_rcue" in dec_rcue_att["rcue"]:
|
||||
assert dec_rcue.rcue.moy_rcue == dec_rcue_att["rcue"]["moy_rcue"]
|
||||
if "est_compensable" in dec_rcue_att["rcue"]:
|
||||
assert (
|
||||
dec_rcue.rcue.est_compensable()
|
||||
== dec_rcue_att["rcue"]["est_compensable"]
|
||||
)
|
||||
|
||||
|
||||
def compare_decisions_annee(deca: DecisionsProposeesAnnee, deca_att: dict):
|
||||
"""Vérifie que les résultats de jury calculés sont ceux attendus.
|
||||
deca est le résultat calculé par ScoDoc
|
||||
@ -362,9 +395,17 @@ def compare_decisions_annee(deca: DecisionsProposeesAnnee, deca_att: dict):
|
||||
if "codes" in deca_att:
|
||||
_check_codes_jury(deca.codes, deca_att["codes"])
|
||||
|
||||
for attr in ("passage_de_droit", "code_valide"):
|
||||
for attr in ("passage_de_droit", "code_valide", "nb_competences"):
|
||||
if attr in deca_att:
|
||||
assert getattr(deca, attr) == deca_att[attr]
|
||||
|
||||
if "decisions_ues" in deca_att:
|
||||
_check_decisions_ues(deca.decisions_ues, deca_att["decisions_ues"])
|
||||
|
||||
if "nb_rcues_annee" in deca_att:
|
||||
assert deca_att["nb_rcues_annee"] == len(deca.rcues_annee)
|
||||
|
||||
if "decisions_rcues" in deca_att:
|
||||
_check_decisions_rcues(
|
||||
deca.decisions_rcue_by_niveau.values(), deca_att["decisions_rcues"]
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user