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.
|
||||
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 functools import wraps
|
||||
import sys
|
||||
import string
|
||||
import collections
|
||||
import pprint
|
||||
import random
|
||||
|
||||
@ -22,6 +26,7 @@ from sco_exceptions import ScoValueError
|
||||
import scolars
|
||||
import sco_formsemestre
|
||||
import sco_formsemestre_inscriptions
|
||||
import sco_formsemestre_validation
|
||||
import sco_synchro_etuds
|
||||
import sco_edit_formation
|
||||
import sco_edit_ue
|
||||
@ -286,3 +291,109 @@ class ScoFake:
|
||||
[(etud["etudid"], note)],
|
||||
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 -*-
|
||||
# -*- 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:
|
||||
scotests/scointeractive.sh -r TEST00 scotests/test_basic.py
|
||||
@ -11,7 +11,7 @@ Utiliser comme:
|
||||
"""
|
||||
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
|
||||
|
||||
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
|
||||
|
Loading…
Reference in New Issue
Block a user