forked from ScoDoc/ScoDoc
TESTS: scenario standard capitalisation
This commit is contained in:
parent
e7ccdee992
commit
dea24d0257
@ -3,12 +3,16 @@
|
|||||||
|
|
||||||
"""Creation environnement pour test.
|
"""Creation environnement pour test.
|
||||||
A utiliser avec debug.py (côté serveur).
|
A utiliser avec debug.py (côté serveur).
|
||||||
|
|
||||||
|
La classe ScoFake offre un ensemble de raccourcis permettant d'écrire
|
||||||
|
facilement des tests ou de reproduire des bugs.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
import sys
|
import sys
|
||||||
import string
|
import string
|
||||||
|
import collections
|
||||||
import pprint
|
import pprint
|
||||||
import random
|
import random
|
||||||
|
|
||||||
@ -22,6 +26,7 @@ from sco_exceptions import ScoValueError
|
|||||||
import scolars
|
import scolars
|
||||||
import sco_formsemestre
|
import sco_formsemestre
|
||||||
import sco_formsemestre_inscriptions
|
import sco_formsemestre_inscriptions
|
||||||
|
import sco_formsemestre_validation
|
||||||
import sco_synchro_etuds
|
import sco_synchro_etuds
|
||||||
import sco_edit_formation
|
import sco_edit_formation
|
||||||
import sco_edit_ue
|
import sco_edit_ue
|
||||||
@ -286,3 +291,109 @@ class ScoFake:
|
|||||||
[(etud["etudid"], note)],
|
[(etud["etudid"], note)],
|
||||||
comment=comment,
|
comment=comment,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def setup_formation(self, nb_semestre=1, nb_ue_per_semestre=2, nb_module_per_ue=2):
|
||||||
|
"""Création d'une formation, avec UE, modules et évaluations.
|
||||||
|
|
||||||
|
Formation avec `nb_semestre` comportant chacun `nb_ue_per_semestre` UE
|
||||||
|
et dans chaque UE `nb_module_per_ue` modules (on a une seule matière par UE).
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
formation (dict), liste d'ue (dicts), liste de modules.
|
||||||
|
"""
|
||||||
|
f = self.create_formation(acronyme="")
|
||||||
|
ue_list = []
|
||||||
|
mod_list = []
|
||||||
|
for semestre_id in range(1, nb_semestre + 1):
|
||||||
|
for n in range(1, nb_ue_per_semestre + 1):
|
||||||
|
ue = self.create_ue(
|
||||||
|
formation_id=f["formation_id"],
|
||||||
|
acronyme="TSU%s%s" % (semestre_id, n),
|
||||||
|
titre="ue test %s%s" % (semestre_id, n),
|
||||||
|
)
|
||||||
|
ue_list.append(ue)
|
||||||
|
mat = self.create_matiere(ue_id=ue["ue_id"], titre="matière test")
|
||||||
|
for _ in range(nb_module_per_ue):
|
||||||
|
mod = self.create_module(
|
||||||
|
matiere_id=mat["matiere_id"],
|
||||||
|
semestre_id=semestre_id,
|
||||||
|
code="TSM%s" % len(mod_list),
|
||||||
|
coefficient=1.0,
|
||||||
|
titre="module test",
|
||||||
|
ue_id=ue["ue_id"], # faiblesse de l'API
|
||||||
|
formation_id=f["formation_id"], # faiblesse de l'API
|
||||||
|
)
|
||||||
|
mod_list.append(mod)
|
||||||
|
return f, ue_list, mod_list
|
||||||
|
|
||||||
|
def setup_formsemestre(
|
||||||
|
self,
|
||||||
|
f,
|
||||||
|
mod_list,
|
||||||
|
semestre_id=1,
|
||||||
|
date_debut="01/01/2020",
|
||||||
|
date_fin="30/06/2020",
|
||||||
|
nb_evaluations_per_module=1,
|
||||||
|
):
|
||||||
|
"""Création semestre, avec modules et évaluations."""
|
||||||
|
sem = self.create_formsemestre(
|
||||||
|
formation_id=f["formation_id"],
|
||||||
|
semestre_id=semestre_id,
|
||||||
|
date_debut=date_debut,
|
||||||
|
date_fin=date_fin,
|
||||||
|
)
|
||||||
|
eval_list = []
|
||||||
|
for mod in mod_list:
|
||||||
|
if mod["semestre_id"] == semestre_id:
|
||||||
|
mi = self.create_moduleimpl(
|
||||||
|
module_id=mod["module_id"],
|
||||||
|
formsemestre_id=sem["formsemestre_id"],
|
||||||
|
responsable_id="bach",
|
||||||
|
)
|
||||||
|
for e_idx in range(1, nb_evaluations_per_module + 1):
|
||||||
|
e = self.create_evaluation(
|
||||||
|
moduleimpl_id=mi["moduleimpl_id"],
|
||||||
|
jour=date_debut,
|
||||||
|
description="evaluation test %s" % e_idx,
|
||||||
|
coefficient=1.0,
|
||||||
|
)
|
||||||
|
eval_list.append(e)
|
||||||
|
return sem, eval_list
|
||||||
|
|
||||||
|
def set_etud_notes_sem(
|
||||||
|
self, sem, eval_list, etuds, notes=None, random_min=0, random_max=20
|
||||||
|
):
|
||||||
|
"""Met des notes aux étudiants indiqués des evals indiquées.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
sem: dict
|
||||||
|
eval_list: list of dicts
|
||||||
|
etuds: list of dicts
|
||||||
|
notes: liste des notes (float).
|
||||||
|
Si non spécifié, tire au hasard dans `[random_min, random_max]`
|
||||||
|
"""
|
||||||
|
set_random = notes is None
|
||||||
|
for e in eval_list:
|
||||||
|
if set_random:
|
||||||
|
notes = [float(random.randint(random_min, random_max)) for _ in etuds]
|
||||||
|
for etud, note in zip(etuds, notes):
|
||||||
|
self.create_note(evaluation=e, etud=etud, note=note)
|
||||||
|
|
||||||
|
def set_code_jury(
|
||||||
|
self,
|
||||||
|
sem,
|
||||||
|
etud,
|
||||||
|
code_etat=sco_codes_parcours.ADM,
|
||||||
|
devenir=sco_codes_parcours.NEXT,
|
||||||
|
assidu=True,
|
||||||
|
):
|
||||||
|
"""Affecte décision de jury"""
|
||||||
|
sco_formsemestre_validation.formsemestre_validation_etud_manu(
|
||||||
|
self.context,
|
||||||
|
formsemestre_id=sem["formsemestre_id"],
|
||||||
|
etudid=etud["etudid"],
|
||||||
|
code_etat=code_etat,
|
||||||
|
devenir=devenir,
|
||||||
|
assidu=assidu,
|
||||||
|
REQUEST=REQUEST,
|
||||||
|
)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
"""test de base de ScoDoc
|
"""Test de base de ScoDoc
|
||||||
|
|
||||||
Creation etudiant, formation, semestre, inscription etudiant, creation evaluation, saisie note
|
Création 10 étudiants, formation, semestre, inscription etudiant, creation 1 evaluation, saisie 10 notes.
|
||||||
|
|
||||||
Utiliser comme:
|
Utiliser comme:
|
||||||
scotests/scointeractive.sh -r TEST00 scotests/test_basic.py
|
scotests/scointeractive.sh -r TEST00 scotests/test_basic.py
|
||||||
@ -11,7 +11,7 @@ Utiliser comme:
|
|||||||
"""
|
"""
|
||||||
import random
|
import random
|
||||||
|
|
||||||
import scotests.sco_fake_gen as sco_fake_gen
|
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
|
||||||
import sco_utils
|
import sco_utils
|
||||||
|
|
||||||
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
|
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
|
||||||
|
Loading…
Reference in New Issue
Block a user