Tests Yaml: saisie notes non numériques (EXC, ABS, ...)
This commit is contained in:
parent
a7126990f0
commit
f9d15da553
@ -74,7 +74,7 @@ from app.scodoc import sco_etud
|
|||||||
|
|
||||||
|
|
||||||
def convert_note_from_string(
|
def convert_note_from_string(
|
||||||
note,
|
note: str,
|
||||||
note_max,
|
note_max,
|
||||||
note_min=scu.NOTES_MIN,
|
note_min=scu.NOTES_MIN,
|
||||||
etudid: int = None,
|
etudid: int = None,
|
||||||
@ -128,7 +128,8 @@ def _displayNote(val):
|
|||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
def _check_notes(notes, evaluation, mod):
|
def _check_notes(notes: list[(int, float)], evaluation: dict, mod: dict):
|
||||||
|
# XXX typehint : float or str
|
||||||
"""notes is a list of tuples (etudid, value)
|
"""notes is a list of tuples (etudid, value)
|
||||||
mod is the module (used to ckeck type, for malus)
|
mod is the module (used to ckeck type, for malus)
|
||||||
returns list of valid notes (etudid, float value)
|
returns list of valid notes (etudid, float value)
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
# Tests unitaires jury BUT - IUTLM GMP
|
# Tests unitaires jury BUT - IUTLM GMP
|
||||||
# Essais avec un BUT GMP, 4 UE + 1 bonus et deux parcours sur S3 S4
|
# Essais avec un BUT GMP, 4 UE + 1 bonus et deux parcours sur S3 S4
|
||||||
# Contrib Martin M.
|
# Contrib Martin M.
|
||||||
|
#
|
||||||
|
# Pour ne jouer que ce scénario:
|
||||||
|
# pytest -m lemans tests/unit/test_but_jury.py
|
||||||
|
|
||||||
ReferentielCompetences:
|
ReferentielCompetences:
|
||||||
filename: but-GMP-05012022-081650.xml
|
filename: but-GMP-05012022-081650.xml
|
||||||
@ -115,7 +118,7 @@ FormSemestres:
|
|||||||
date_fin: 2024-01-12
|
date_fin: 2024-01-12
|
||||||
|
|
||||||
Etudiants:
|
Etudiants:
|
||||||
gmp01:
|
gmp01: # cursus S1, S2, S3
|
||||||
prenom: etugmp01
|
prenom: etugmp01
|
||||||
civilite: M
|
civilite: M
|
||||||
formsemestres:
|
formsemestres:
|
||||||
@ -231,7 +234,7 @@ Etudiants:
|
|||||||
code_valide: ADM
|
code_valide: ADM
|
||||||
moy_ue: 12.5
|
moy_ue: 12.5
|
||||||
|
|
||||||
gmp02:
|
gmp02: # cursus S1, S2, S3
|
||||||
prenom: etugmp02
|
prenom: etugmp02
|
||||||
civilite: F
|
civilite: F
|
||||||
formsemestres:
|
formsemestres:
|
||||||
@ -346,7 +349,7 @@ Etudiants:
|
|||||||
# code_valide: ADM
|
# code_valide: ADM
|
||||||
# moy_ue: 14
|
# moy_ue: 14
|
||||||
|
|
||||||
gmp03:
|
gmp03: # cursus S1, S2, S1-red
|
||||||
prenom: etugmp03
|
prenom: etugmp03
|
||||||
civilite: X
|
civilite: X
|
||||||
formsemestres:
|
formsemestres:
|
||||||
@ -431,6 +434,7 @@ Etudiants:
|
|||||||
notes_modules: # on ne note ici que les UE à refaire
|
notes_modules: # on ne note ici que les UE à refaire
|
||||||
"SAE1.1": 14. # il améliore son UE 1
|
"SAE1.1": 14. # il améliore son UE 1
|
||||||
"SAE1.2": 12. # et cette fois reussi les autres
|
"SAE1.2": 12. # et cette fois reussi les autres
|
||||||
|
"SAE1.3": EXC # pour que l'éval soit complete
|
||||||
"SAE1.4": 13.
|
"SAE1.4": 13.
|
||||||
attendu:
|
attendu:
|
||||||
nb_competences: 4
|
nb_competences: 4
|
||||||
@ -447,3 +451,19 @@ Etudiants:
|
|||||||
"UE1.4-C4":
|
"UE1.4-C4":
|
||||||
code_valide: ADM
|
code_valide: ADM
|
||||||
moy_ue: 13
|
moy_ue: 13
|
||||||
|
|
||||||
|
gmp04: # cursus S1-red (primo-entrant)
|
||||||
|
prenom: Primo
|
||||||
|
civilite: M
|
||||||
|
formsemestres:
|
||||||
|
S1-red:
|
||||||
|
notes_modules:
|
||||||
|
"SAE1.1": 11.
|
||||||
|
"SAE1.2": 12.
|
||||||
|
"SAE1.3": 13.
|
||||||
|
"SAE1.4": 9.
|
||||||
|
attendu: # les codes jury que l'on doit vérifier
|
||||||
|
deca:
|
||||||
|
"UE1.4-C4":
|
||||||
|
code_valide: "AJ"
|
||||||
|
moy_ue: 9.
|
||||||
|
@ -237,10 +237,21 @@ def note_les_modules(doc: dict):
|
|||||||
raise ValueError(f"module de code '{code_module}' introuvable")
|
raise ValueError(f"module de code '{code_module}' introuvable")
|
||||||
for evaluation in modimpl.evaluations:
|
for evaluation in modimpl.evaluations:
|
||||||
# s'il y a plusieurs evals, affecte la même note à chacune
|
# s'il y a plusieurs evals, affecte la même note à chacune
|
||||||
|
note_value, invalid = sco_saisie_notes.convert_note_from_string(
|
||||||
|
str(note),
|
||||||
|
20.0,
|
||||||
|
note_min=scu.NOTES_MIN,
|
||||||
|
etudid=etud.id,
|
||||||
|
absents=[],
|
||||||
|
tosuppress=[],
|
||||||
|
invalids=[],
|
||||||
|
)
|
||||||
|
assert not invalid # valeur note invalide
|
||||||
|
assert isinstance(note_value, float)
|
||||||
sco_saisie_notes.notes_add(
|
sco_saisie_notes.notes_add(
|
||||||
a_user,
|
a_user,
|
||||||
evaluation.id,
|
evaluation.id,
|
||||||
[(etud.id, float(note))],
|
[(etud.id, note_value)],
|
||||||
comment="note_les_modules",
|
comment="note_les_modules",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user