forked from ScoDoc/ScoDoc
Fix unit tests
This commit is contained in:
parent
b9f3f84857
commit
0809cc4feb
@ -341,7 +341,7 @@ def formsemestre_etudiants(
|
|||||||
# XXX A REVOIR: trop inefficace !
|
# XXX A REVOIR: trop inefficace !
|
||||||
for etud in etuds:
|
for etud in etuds:
|
||||||
etud["groups"] = sco_groups.get_etud_groups(
|
etud["groups"] = sco_groups.get_etud_groups(
|
||||||
etud["id"], formsemestre_id, exclude_default=True
|
etud["etudid"], formsemestre_id, exclude_default=True
|
||||||
)
|
)
|
||||||
|
|
||||||
return jsonify(sorted(etuds, key=lambda e: e["sort_key"]))
|
return jsonify(sorted(etuds, key=lambda e: e["sort_key"]))
|
||||||
|
@ -284,9 +284,9 @@ def formsemestre_bulletinetud_published_dict(
|
|||||||
d["ue_capitalisee"].append(
|
d["ue_capitalisee"].append(
|
||||||
dict(
|
dict(
|
||||||
id=ue_id,
|
id=ue_id,
|
||||||
numero=quote_xml_attr(ue.numero),
|
numero=quote_xml_attr(ue_st["numero"]),
|
||||||
acronyme=quote_xml_attr(ue.acronyme),
|
acronyme=quote_xml_attr(ue_st["acronyme"]),
|
||||||
titre=quote_xml_attr(ue.titre),
|
titre=quote_xml_attr(ue_st["titre"]),
|
||||||
note=scu.fmt_note(ue_status["moy"]),
|
note=scu.fmt_note(ue_status["moy"]),
|
||||||
coefficient_ue=scu.fmt_note(ue_status["coef_ue"]),
|
coefficient_ue=scu.fmt_note(ue_status["coef_ue"]),
|
||||||
date_capitalisation=ndb.DateDMYtoISO(ue_status["event_date"]),
|
date_capitalisation=ndb.DateDMYtoISO(ue_status["event_date"]),
|
||||||
|
@ -286,7 +286,8 @@ def do_formsemestre_inscription_with_modules(
|
|||||||
args["etape"] = etape
|
args["etape"] = etape
|
||||||
do_formsemestre_inscription_create(args, method=method)
|
do_formsemestre_inscription_create(args, method=method)
|
||||||
log(
|
log(
|
||||||
f"do_formsemestre_inscription_with_modules: etudid={etudid} formsemestre_id={formsemestre_id}"
|
f"""do_formsemestre_inscription_with_modules: etudid={
|
||||||
|
etudid} formsemestre_id={formsemestre_id}"""
|
||||||
)
|
)
|
||||||
# inscriptions aux groupes
|
# inscriptions aux groupes
|
||||||
# 1- inscrit au groupe 'tous'
|
# 1- inscrit au groupe 'tous'
|
||||||
@ -296,7 +297,7 @@ def do_formsemestre_inscription_with_modules(
|
|||||||
|
|
||||||
# 2- inscrit aux groupes
|
# 2- inscrit aux groupes
|
||||||
for group_id in group_ids:
|
for group_id in group_ids:
|
||||||
if group_id and not group_id in gdone:
|
if group_id and group_id not in gdone:
|
||||||
group = GroupDescr.query.get_or_404(group_id)
|
group = GroupDescr.query.get_or_404(group_id)
|
||||||
sco_groups.set_group(etudid, group_id)
|
sco_groups.set_group(etudid, group_id)
|
||||||
gdone[group_id] = 1
|
gdone[group_id] = 1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.4.9"
|
SCOVERSION = "9.4.10"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
@ -76,6 +76,7 @@ def test_etudiants_courant(api_headers):
|
|||||||
|
|
||||||
etud = etudiants[-1]
|
etud = etudiants[-1]
|
||||||
assert verify_fields(etud, fields) is True
|
assert verify_fields(etud, fields) is True
|
||||||
|
assert etud["id"] == etud["etudid"]
|
||||||
assert isinstance(etud["id"], int)
|
assert isinstance(etud["id"], int)
|
||||||
assert isinstance(etud["code_nip"], str)
|
assert isinstance(etud["code_nip"], str)
|
||||||
assert isinstance(etud["nom"], str)
|
assert isinstance(etud["nom"], str)
|
||||||
|
@ -421,7 +421,7 @@ class ScoFake(object):
|
|||||||
for idx, etud in enumerate(etuds):
|
for idx, etud in enumerate(etuds):
|
||||||
self.create_note(
|
self.create_note(
|
||||||
evaluation_id=e["id"],
|
evaluation_id=e["id"],
|
||||||
etudid=etud["id"],
|
etudid=etud["etudid"],
|
||||||
note=notes[idx % len(notes)],
|
note=notes[idx % len(notes)],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ def test_ue_moy(test_client):
|
|||||||
modimpl_inscr_df,
|
modimpl_inscr_df,
|
||||||
modimpl_coefs_df,
|
modimpl_coefs_df,
|
||||||
modimpl_mask,
|
modimpl_mask,
|
||||||
|
set(),
|
||||||
)
|
)
|
||||||
return etud_moy_ue
|
return etud_moy_ue
|
||||||
|
|
||||||
@ -122,7 +123,13 @@ def test_ue_moy(test_client):
|
|||||||
modimpl.module.ue.type != UE_SPORT for modimpl in formsemestre.modimpls_sorted
|
modimpl.module.ue.type != UE_SPORT for modimpl in formsemestre.modimpls_sorted
|
||||||
]
|
]
|
||||||
etud_moy_ue = moy_ue.compute_ue_moys_apc(
|
etud_moy_ue = moy_ue.compute_ue_moys_apc(
|
||||||
sem_cube, etuds, modimpls, modimpl_inscr_df, modimpl_coefs_df, modimpl_mask
|
sem_cube,
|
||||||
|
etuds,
|
||||||
|
modimpls,
|
||||||
|
modimpl_inscr_df,
|
||||||
|
modimpl_coefs_df,
|
||||||
|
modimpl_mask,
|
||||||
|
set(),
|
||||||
)
|
)
|
||||||
assert etud_moy_ue[ue1.id][etudid] == n1
|
assert etud_moy_ue[ue1.id][etudid] == n1
|
||||||
assert etud_moy_ue[ue2.id][etudid] == n1
|
assert etud_moy_ue[ue2.id][etudid] == n1
|
||||||
|
@ -106,13 +106,17 @@ def test_notes_modules(test_client):
|
|||||||
# --- Notes ordinaires
|
# --- Notes ordinaires
|
||||||
note_1 = 12.0
|
note_1 = 12.0
|
||||||
note_2 = 13.0
|
note_2 = 13.0
|
||||||
_, _, _ = G.create_note(evaluation_id=e1["id"], etudid=etuds[0]["id"], note=note_1)
|
|
||||||
_, _, _ = G.create_note(evaluation_id=e2["id"], etudid=etuds[0]["id"], note=note_2)
|
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e1["id"], etudid=etuds[1]["id"], note=note_1 / 2
|
evaluation_id=e1["id"], etudid=etuds[0]["etudid"], note=note_1
|
||||||
)
|
)
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e2["id"], etudid=etuds[1]["id"], note=note_2 / 3
|
evaluation_id=e2["id"], etudid=etuds[0]["etudid"], note=note_2
|
||||||
|
)
|
||||||
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e1["id"], etudid=etuds[1]["etudid"], note=note_1 / 2
|
||||||
|
)
|
||||||
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e2["id"], etudid=etuds[1]["etudid"], note=note_2 / 3
|
||||||
)
|
)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
@ -316,9 +320,15 @@ def test_notes_modules(test_client):
|
|||||||
evaluation_id=e2["id"], etudid=etudid, note=scu.NOTES_NEUTRALISE
|
evaluation_id=e2["id"], etudid=etudid, note=scu.NOTES_NEUTRALISE
|
||||||
) # EXC
|
) # EXC
|
||||||
_, _, _ = G.create_note(evaluation_id=e_m2["id"], etudid=etudid, note=12.5)
|
_, _, _ = G.create_note(evaluation_id=e_m2["id"], etudid=etudid, note=12.5)
|
||||||
_, _, _ = G.create_note(evaluation_id=e1["id"], etudid=etuds[1]["id"], note=11.0)
|
_, _, _ = G.create_note(
|
||||||
_, _, _ = G.create_note(evaluation_id=e2["id"], etudid=etuds[1]["id"], note=11.0)
|
evaluation_id=e1["id"], etudid=etuds[1]["etudid"], note=11.0
|
||||||
_, _, _ = G.create_note(evaluation_id=e_m2["id"], etudid=etuds[1]["id"], note=11.0)
|
)
|
||||||
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e2["id"], etudid=etuds[1]["etudid"], note=11.0
|
||||||
|
)
|
||||||
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e_m2["id"], etudid=etuds[1]["etudid"], note=11.0
|
||||||
|
)
|
||||||
|
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
@ -381,10 +391,10 @@ def test_notes_modules_att_dem(test_client):
|
|||||||
)
|
)
|
||||||
# Attente (ATT) sur les 2 evals
|
# Attente (ATT) sur les 2 evals
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e1["id"], etudid=etuds[0]["id"], note=scu.NOTES_ATTENTE
|
evaluation_id=e1["id"], etudid=etuds[0]["etudid"], note=scu.NOTES_ATTENTE
|
||||||
) # ATT
|
) # ATT
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e1["id"], etudid=etuds[1]["id"], note=scu.NOTES_ATTENTE
|
evaluation_id=e1["id"], etudid=etuds[1]["etudid"], note=scu.NOTES_ATTENTE
|
||||||
) # ATT
|
) # ATT
|
||||||
# Démission du premier étudiant
|
# Démission du premier étudiant
|
||||||
sco_formsemestre_inscriptions.do_formsemestre_demission(
|
sco_formsemestre_inscriptions.do_formsemestre_demission(
|
||||||
@ -424,7 +434,9 @@ def test_notes_modules_att_dem(test_client):
|
|||||||
assert note_e1 == scu.NOTES_ATTENTE # XXXX un peu contestable
|
assert note_e1 == scu.NOTES_ATTENTE # XXXX un peu contestable
|
||||||
|
|
||||||
# Saisie note ABS pour le deuxième etud
|
# Saisie note ABS pour le deuxième etud
|
||||||
_, _, _ = G.create_note(evaluation_id=e1["id"], etudid=etuds[1]["id"], note=None)
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e1["id"], etudid=etuds[1]["etudid"], note=None
|
||||||
|
)
|
||||||
nt = check_nt(
|
nt = check_nt(
|
||||||
etuds[1]["etudid"],
|
etuds[1]["etudid"],
|
||||||
sem["formsemestre_id"],
|
sem["formsemestre_id"],
|
||||||
|
@ -71,8 +71,8 @@ def test_notes_rattrapage(test_client):
|
|||||||
evaluation_type=scu.EVALUATION_RATTRAPAGE,
|
evaluation_type=scu.EVALUATION_RATTRAPAGE,
|
||||||
)
|
)
|
||||||
etud = etuds[0]
|
etud = etuds[0]
|
||||||
_, _, _ = G.create_note(evaluation_id=e["id"], etudid=etud["id"], note=12.0)
|
_, _, _ = G.create_note(evaluation_id=e["id"], etudid=etud["etudid"], note=12.0)
|
||||||
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["id"], note=11.0)
|
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["etudid"], note=11.0)
|
||||||
|
|
||||||
# --- Vérifications internes structures ScoDoc
|
# --- Vérifications internes structures ScoDoc
|
||||||
formsemestre = FormSemestre.query.get(formsemestre_id)
|
formsemestre = FormSemestre.query.get(formsemestre_id)
|
||||||
@ -96,21 +96,23 @@ def test_notes_rattrapage(test_client):
|
|||||||
# Note moyenne: ici le ratrapage est inférieur à la note:
|
# Note moyenne: ici le ratrapage est inférieur à la note:
|
||||||
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(12.0)
|
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(12.0)
|
||||||
# rattrapage > moyenne:
|
# rattrapage > moyenne:
|
||||||
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["id"], note=18.0)
|
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["etudid"], note=18.0)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
)
|
)
|
||||||
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(18.0)
|
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(18.0)
|
||||||
# rattrapage vs absences
|
# rattrapage vs absences
|
||||||
_, _, _ = G.create_note(evaluation_id=e["id"], etudid=etud["id"], note=None) # abs
|
_, _, _ = G.create_note(
|
||||||
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["id"], note=17.0)
|
evaluation_id=e["id"], etudid=etud["etudid"], note=None
|
||||||
|
) # abs
|
||||||
|
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["etudid"], note=17.0)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
)
|
)
|
||||||
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(17.0)
|
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(17.0)
|
||||||
# et sans note de rattrapage
|
# et sans note de rattrapage
|
||||||
_, _, _ = G.create_note(evaluation_id=e["id"], etudid=etud["id"], note=10.0)
|
_, _, _ = G.create_note(evaluation_id=e["id"], etudid=etud["etudid"], note=10.0)
|
||||||
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["id"], note=None)
|
_, _, _ = G.create_note(evaluation_id=e_rat["id"], etudid=etud["etudid"], note=None)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
)
|
)
|
||||||
@ -152,7 +154,9 @@ def test_notes_rattrapage(test_client):
|
|||||||
assert len(mod_res.get_evaluations_completes(moduleimpl)) == 2
|
assert len(mod_res.get_evaluations_completes(moduleimpl)) == 2
|
||||||
|
|
||||||
# Saisie note session 2:
|
# Saisie note session 2:
|
||||||
_, _, _ = G.create_note(evaluation_id=e_session2["id"], etudid=etud["id"], note=5.0)
|
_, _, _ = G.create_note(
|
||||||
|
evaluation_id=e_session2["id"], etudid=etud["etudid"], note=5.0
|
||||||
|
)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
)
|
)
|
||||||
@ -160,7 +164,7 @@ def test_notes_rattrapage(test_client):
|
|||||||
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(5.0)
|
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(5.0)
|
||||||
|
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e_session2["id"], etudid=etud["id"], note=20.0
|
evaluation_id=e_session2["id"], etudid=etud["etudid"], note=20.0
|
||||||
)
|
)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
@ -169,7 +173,7 @@ def test_notes_rattrapage(test_client):
|
|||||||
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(20.0)
|
assert b["ues"][0]["modules"][0]["mod_moy_txt"] == scu.fmt_note(20.0)
|
||||||
|
|
||||||
_, _, _ = G.create_note(
|
_, _, _ = G.create_note(
|
||||||
evaluation_id=e_session2["id"], etudid=etud["id"], note=None
|
evaluation_id=e_session2["id"], etudid=etud["etudid"], note=None
|
||||||
)
|
)
|
||||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||||
sem["formsemestre_id"], etud["etudid"]
|
sem["formsemestre_id"], etud["etudid"]
|
||||||
|
@ -82,9 +82,10 @@ def run_sco_basic(verbose=False) -> FormSemestre:
|
|||||||
# --- Inscription des étudiants
|
# --- Inscription des étudiants
|
||||||
for etud in etuds:
|
for etud in etuds:
|
||||||
G.inscrit_etudiant(formsemestre_id, etud)
|
G.inscrit_etudiant(formsemestre_id, etud)
|
||||||
|
|
||||||
# Vérification incription semestre:
|
# Vérification incription semestre:
|
||||||
q = FormSemestreInscription.query.filter_by(
|
q = FormSemestreInscription.query.filter_by(
|
||||||
etudid=etuds[0]["id"], formsemestre_id=formsemestre_id
|
etudid=etuds[0]["etudid"], formsemestre_id=formsemestre_id
|
||||||
)
|
)
|
||||||
assert q.count() == 1
|
assert q.count() == 1
|
||||||
ins = q.first()
|
ins = q.first()
|
||||||
@ -103,7 +104,9 @@ def run_sco_basic(verbose=False) -> FormSemestre:
|
|||||||
# --- Saisie toutes les notes de l'évaluation
|
# --- Saisie toutes les notes de l'évaluation
|
||||||
for idx, etud in enumerate(etuds):
|
for idx, etud in enumerate(etuds):
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||||
evaluation_id=e["id"], etudid=etud["id"], note=NOTES_T[idx % len(NOTES_T)]
|
evaluation_id=e["id"],
|
||||||
|
etudid=etud["etudid"],
|
||||||
|
note=NOTES_T[idx % len(NOTES_T)],
|
||||||
)
|
)
|
||||||
assert not existing_decisions
|
assert not existing_decisions
|
||||||
assert nb_suppress == 0
|
assert nb_suppress == 0
|
||||||
@ -134,7 +137,9 @@ def run_sco_basic(verbose=False) -> FormSemestre:
|
|||||||
# Saisie les notes des 5 premiers étudiants:
|
# Saisie les notes des 5 premiers étudiants:
|
||||||
for idx, etud in enumerate(etuds[:5]):
|
for idx, etud in enumerate(etuds[:5]):
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||||
evaluation_id=e2["id"], etudid=etud["id"], note=NOTES_T[idx % len(NOTES_T)]
|
evaluation_id=e2["id"],
|
||||||
|
etudid=etud["etudid"],
|
||||||
|
note=NOTES_T[idx % len(NOTES_T)],
|
||||||
)
|
)
|
||||||
# Cette éval n'est pas complète
|
# Cette éval n'est pas complète
|
||||||
etat = sco_evaluations.do_evaluation_etat(e2["evaluation_id"])
|
etat = sco_evaluations.do_evaluation_etat(e2["evaluation_id"])
|
||||||
@ -154,7 +159,9 @@ def run_sco_basic(verbose=False) -> FormSemestre:
|
|||||||
# Saisie des notes qui manquent:
|
# Saisie des notes qui manquent:
|
||||||
for idx, etud in enumerate(etuds[5:]):
|
for idx, etud in enumerate(etuds[5:]):
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||||
evaluation_id=e2["id"], etudid=etud["id"], note=NOTES_T[idx % len(NOTES_T)]
|
evaluation_id=e2["id"],
|
||||||
|
etudid=etud["etudid"],
|
||||||
|
note=NOTES_T[idx % len(NOTES_T)],
|
||||||
)
|
)
|
||||||
etat = sco_evaluations.do_evaluation_etat(e2["evaluation_id"])
|
etat = sco_evaluations.do_evaluation_etat(e2["evaluation_id"])
|
||||||
assert etat["evalcomplete"]
|
assert etat["evalcomplete"]
|
||||||
@ -232,7 +239,7 @@ def run_sco_basic(verbose=False) -> FormSemestre:
|
|||||||
|
|
||||||
# ---- Suppression d'un étudiant, vérification inscription
|
# ---- Suppression d'un étudiant, vérification inscription
|
||||||
# (permet de tester les cascades)
|
# (permet de tester les cascades)
|
||||||
etud = Identite.query.get(etuds[0]["id"])
|
etud = Identite.query.get(etuds[0]["etudid"])
|
||||||
assert etud is not None
|
assert etud is not None
|
||||||
etudid = etud.id
|
etudid = etud.id
|
||||||
db.session.delete(etud)
|
db.session.delete(etud)
|
||||||
|
Loading…
Reference in New Issue
Block a user