forked from ScoDoc/ScoDoc
Merge branch 'ScoDoc8' of https://scodoc.org/git/viennet/ScoDoc into onedb
merge scenarios tests.
This commit is contained in:
commit
cc1967b315
@ -1,73 +0,0 @@
|
|||||||
import sco_formations
|
|
||||||
import random
|
|
||||||
|
|
||||||
# La variable context est définie par le script de lancement
|
|
||||||
# l'affecte ainsi pour évietr 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 sco_moduleimpl
|
|
||||||
|
|
||||||
G = sco_fake_gen.ScoFake(context.Notes)
|
|
||||||
G.verbose = False
|
|
||||||
|
|
||||||
file = open("scotests/export_formation1.xml")
|
|
||||||
doc = file.read()
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
|
|
||||||
# --- Création de la formation
|
|
||||||
|
|
||||||
f = sco_formations.formation_import_xml(doc=doc, context=context.Notes)
|
|
||||||
|
|
||||||
# --- Création des semestres
|
|
||||||
|
|
||||||
sem1 = G.create_formsemestre(
|
|
||||||
formation_id=f[0],
|
|
||||||
semestre_id=1,
|
|
||||||
date_debut="01/09/2020",
|
|
||||||
date_fin="01/02/2021",
|
|
||||||
)
|
|
||||||
|
|
||||||
sem3 = G.create_formsemestre(
|
|
||||||
formation_id=f[0],
|
|
||||||
semestre_id=3,
|
|
||||||
date_debut="01/09/2020",
|
|
||||||
date_fin="01/02/2021",
|
|
||||||
)
|
|
||||||
|
|
||||||
sem2 = G.create_formsemestre(
|
|
||||||
formation_id=f[0],
|
|
||||||
semestre_id=2,
|
|
||||||
date_debut="02/02/2021",
|
|
||||||
date_fin="01/06/2021",
|
|
||||||
)
|
|
||||||
|
|
||||||
sem4 = G.create_formsemestre(
|
|
||||||
formation_id=f[0],
|
|
||||||
semestre_id=4,
|
|
||||||
date_debut="02/02/2021",
|
|
||||||
date_fin="01/06/2021",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# --- Implémentation des modules
|
|
||||||
|
|
||||||
li_module = context.Notes.do_module_list()
|
|
||||||
mods_imp = []
|
|
||||||
for mod in li_module:
|
|
||||||
if mod["semestre_id"] == 1:
|
|
||||||
formsemestre_id = sem1["formsemestre_id"]
|
|
||||||
elif mod["semestre_id"] == 2:
|
|
||||||
formsemestre_id = sem2["formsemestre_id"]
|
|
||||||
elif mod["semestre_id"] == 3:
|
|
||||||
formsemestre_id = sem3["formsemestre_id"]
|
|
||||||
else:
|
|
||||||
formsemestre_id = sem4["formsemestre_id"]
|
|
||||||
|
|
||||||
mi = G.create_moduleimpl(
|
|
||||||
module_id=mod["module_id"],
|
|
||||||
formsemestre_id=formsemestre_id,
|
|
||||||
responsable_id="bach",
|
|
||||||
)
|
|
||||||
mods_imp.append(mi)
|
|
@ -30,11 +30,18 @@ def test_client():
|
|||||||
db.create_all()
|
db.create_all()
|
||||||
Role.insert_roles()
|
Role.insert_roles()
|
||||||
u = User(user_name="admin")
|
u = User(user_name="admin")
|
||||||
admin_role = Role.query.filter_by(name="SuperAdmin").first()
|
super_admin_role = Role.query.filter_by(name="SuperAdmin").first()
|
||||||
u.add_role(admin_role, "TEST00")
|
u.add_role(super_admin_role, "TEST00")
|
||||||
# u.set_password("admin")
|
# u.set_password("admin")
|
||||||
login_user(u)
|
login_user(u)
|
||||||
# db.session.add(u)
|
# Vérifie que l'utilisateur bach existe
|
||||||
|
u = User.query.filter_by(user_name="bach").first()
|
||||||
|
if u is None:
|
||||||
|
u = User(user_name="bach")
|
||||||
|
if not "Admin" in {r.name for r in u.roles}:
|
||||||
|
admin_role = Role.query.filter_by(name="Admin").first()
|
||||||
|
u.add_role(admin_role, "TEST00")
|
||||||
|
db.session.add(u)
|
||||||
ndb.set_sco_dept("TEST00") # set db connection
|
ndb.set_sco_dept("TEST00") # set db connection
|
||||||
truncate_database() # erase tables
|
truncate_database() # erase tables
|
||||||
yield client
|
yield client
|
||||||
|
61
tests/scenarios/test_scenario1_formation.py
Normal file
61
tests/scenarios/test_scenario1_formation.py
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Scenario: préparation base de données pour tests Selenium
|
||||||
|
|
||||||
|
S'utilise comme un test avec pytest, mais n'est pas un test !
|
||||||
|
Modifie la base de données du département TEST00
|
||||||
|
|
||||||
|
Usage: pytest tests/scenarios/test_scenario1_formation.py
|
||||||
|
"""
|
||||||
|
# code écrit par Fares Amer, mai 2021 et porté sur ScoDoc 8 en août 2021
|
||||||
|
|
||||||
|
import random
|
||||||
|
|
||||||
|
from tests.unit import sco_fake_gen
|
||||||
|
from app.scodoc import sco_edit_module
|
||||||
|
from app.scodoc import sco_formations
|
||||||
|
from app.scodoc import sco_moduleimpl
|
||||||
|
|
||||||
|
context = None # #context
|
||||||
|
|
||||||
|
|
||||||
|
def test_scenario1(test_client):
|
||||||
|
"""Applique "scenario 1"""
|
||||||
|
G = sco_fake_gen.ScoFake(verbose=False)
|
||||||
|
|
||||||
|
# Lecture fichier XML local:
|
||||||
|
with open("tests/unit/formation-exemple-1.xml") as f:
|
||||||
|
doc = f.read()
|
||||||
|
|
||||||
|
# --- Création de la formation
|
||||||
|
f = sco_formations.formation_import_xml(doc=doc, context=context)
|
||||||
|
|
||||||
|
# --- Création des semestres
|
||||||
|
formation_id = f[0]
|
||||||
|
# --- Mise en place de 4 semestres
|
||||||
|
sems = [
|
||||||
|
G.create_formsemestre(
|
||||||
|
formation_id=formation_id,
|
||||||
|
semestre_id=x[0],
|
||||||
|
date_debut=x[1],
|
||||||
|
date_fin=x[2],
|
||||||
|
)
|
||||||
|
for x in (
|
||||||
|
(1, "01/09/2020", "01/02/2021"),
|
||||||
|
(2, "02/02/2021", "01/06/2021"),
|
||||||
|
(3, "01/09/2020", "01/02/2021"),
|
||||||
|
(4, "02/02/2021", "01/06/2021"),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
# --- Implémentation des modules
|
||||||
|
modules = sco_edit_module.do_module_list(context, {"formation_id": formation_id})
|
||||||
|
mods_imp = []
|
||||||
|
for mod in modules:
|
||||||
|
mi = G.create_moduleimpl(
|
||||||
|
module_id=mod["module_id"],
|
||||||
|
formsemestre_id=sems[mod["semestre_id"] - 1]["formsemestre_id"],
|
||||||
|
responsable_id="bach",
|
||||||
|
)
|
||||||
|
mods_imp.append(mi)
|
@ -66,7 +66,7 @@ def logging_meth(func):
|
|||||||
|
|
||||||
|
|
||||||
class ScoFake(object):
|
class ScoFake(object):
|
||||||
"""Helper for ScoSoc tests"""
|
"""Helper for ScoDoc tests"""
|
||||||
|
|
||||||
def __init__(self, verbose=True):
|
def __init__(self, verbose=True):
|
||||||
self.verbose = verbose
|
self.verbose = verbose
|
||||||
|
Loading…
Reference in New Issue
Block a user