ScoDoc/scotests/test_etudiant.py

135 lines
3.9 KiB
Python
Raw Normal View History

""" Création de 2 étudiants, un qui demissionne, un autre defaillant + annuler demission et annuler défaillance
Fonctions de lAPI utilisé :
- doDemEtudiant
- doDefEtudiant
- doCancelDem
- doCancelDef
- etud_info
- search_etud_in_dept
- fillEtudsInfo
"""
import random
# La variable context est définie par le script de lancement
# l'affecte ainsi pour éviter les warnins pylint:
context = context # pylint: disable=undefined-variable
REQUEST = REQUEST # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
import scolars
import sco_find_etud
G = sco_fake_gen.ScoFake(context.Notes)
G.verbose = False
# --- Création d'étudiants
etud1 = G.create_etud(
code_nip="",
nom="Poire",
prenom="Kevin",
code_ine="",
civilite="M",
etape="TST1",
email="test1@localhost",
emailperso="perso1@localhost",
date_naissance="01/05/2001",
lieu_naissance="Stains",
dept_naissance="93",
domicile="11, rue du test",
codepostaldomicile="93430",
villedomicile="Villetaneuse",
paysdomicile="France",
telephone="0102030405",
typeadresse="domicile",
boursier=None,
description="etudiant test",
)
etud2 = G.create_etud()
# --- Création d'une formation
f = G.create_formation(acronyme="")
ue = G.create_ue(formation_id=f["formation_id"], acronyme="TST1", titre="ue test")
mat = G.create_matiere(ue_id=ue["ue_id"], titre="matière test")
mod = G.create_module(
matiere_id=mat["matiere_id"],
code="TSM1",
coefficient=1.0,
titre="module test",
ue_id=ue["ue_id"], # faiblesse de l'API
formation_id=f["formation_id"], # faiblesse de l'API
)
# --- Mise place d'un semestre
sem = G.create_formsemestre(
formation_id=f["formation_id"],
semestre_id=1,
date_debut="01/01/2020",
date_fin="30/06/2020",
)
mi = G.create_moduleimpl(
module_id=mod["module_id"],
formsemestre_id=sem["formsemestre_id"],
responsable_id="bach",
)
# --- Inscription des étudiants
G.inscrit_etudiant(sem, etud1)
G.inscrit_etudiant(sem, etud2)
# --- Etud_info
info = context.Scolarite.etud_info(etud1["etudid"], format = "json", REQUEST=REQUEST)
load_info = json.loads(info)
# --- Démission étudiant
context.doDemEtudiant(etud1["etudid"], sem["formsemestre_id"], event_date="01/01/2021")
bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"])
assert bul["moy_gen"] == "NA"
assert bul["ins"][0]["etat"] == "D"
# --- Défaillance d'un étudiant
context.doDefEtudiant(etud2["etudid"], sem["formsemestre_id"], event_date="01/01/2021")
bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"])
assert bul["moy_gen"] == "NA"
assert bul["ins"][0]["etat"] == "D"
# --- Annuler démission
context.Scolarite.doCancelDem(etud1["etudid"], sem["formsemestre_id"], REQUEST=REQUEST)
bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"])
print(bul["ins"][0]["etat"])
#assert bul["ins"][0]["etat"] == "I"
# --- Annuler défaillance
context.Scolarite.doCancelDef(etud2["etudid"], sem["formsemestre_id"], REQUEST=REQUEST)
bul = sco_bulletins.formsemestre_bulletinetud_dict(context.Notes, sem["formsemestre_id"], etud1["etudid"])
print(bul["ins"][0]["etat"])
#assert bul["ins"][0]["etat"] == "I"
# --- Fonctions retournant HTML
find = sco_find_etud.search_etud_in_dept(context.Scolarite, expnom="Poire", REQUEST=REQUEST)
_ = context.Scolarite.fillEtudsInfo(etuds=[etud1])
"""
Commentaire :
L'etat ne se met pas à jour après l'annulation de la démission ou de la défaillance.
etud_info ne donne pas toutes les infos de l'étudiant voir mini test create_etud.
"""