1
0
forked from ScoDoc/ScoDoc
ScoDoc/scotests/test_etudiant.py
2021-06-09 19:27:12 +02:00

135 lines
3.9 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

""" 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.
"""