Skip to content
Snippets Groups Projects
Commit 4c7c6e1b authored by Emmanuel Viennet's avatar Emmanuel Viennet
Browse files

Nouveau test unitaire sur les formsemestres

parent 639941bc
No related branches found
No related tags found
No related merge requests found
# Définion de deux formsemestres dans la même formation, sans résultats
# pour tests unitaires formsemestre.
Formation:
filename: scodoc_formation_BUT_GEII_lyon_v1.xml
# Association des UE aux compétences:
ues:
# S1 : Tronc commun GEII
'UE11':
annee: BUT1
competence: Concevoir
'UE12':
annee: BUT1
competence: Vérifier
# S2 : Tronc commun GEII
'UE21':
annee: BUT1
competence: Concevoir
'UE22':
annee: BUT1
competence: Vérifier
# S3 : Tronc commun GEII
'UE31':
annee: BUT2
competence: Concevoir
'UE32':
annee: BUT2
competence: Vérifier
'UE33':
annee: BUT2
competence: Maintenir
# S3 : Parcours EME
'UE34EME':
annee: BUT2
competence: Installer
parcours: EME
# S3 : Parcours ESE
'UE34ESE':
annee: BUT2
competence: Implanter
parcours: ESE
# S3 : Parcours AII
'UE34AII':
annee: BUT2
competence: Intégrer
parcours: AII
# S4 : Tronc commun GEII
'UE41':
annee: BUT2
competence: Concevoir
'UE42':
annee: BUT2
competence: Vérifier
'UE43':
annee: BUT2
competence: Maintenir
# S4 : Parcours EME
'UE44EME':
annee: BUT2
competence: Installer
parcours: EME
# S4 : Parcours ESE
'UE44ESE':
annee: BUT2
competence: Implanter
parcours: ESE
# S4 : Parcours AII
'UE44AII':
annee: BUT2
competence: Intégrer
parcours: AII
modules_parcours:
# cette section permet d'associer des modules à des parcours
# les codes modules peuvent être des regexp
EME: [ .*EME.* ]
ESE: [ .*ESE.* ]
AII: [ .*AII.* ]
FormSemestres:
# S1 et S2 :
S1:
idx: 1
date_debut: 2021-09-01
date_fin: 2022-01-15
S1b:
idx: 1
date_debut: 2021-09-02
date_fin: 2022-01-17
# -*- mode: python -*-
# -*- coding: utf-8 -*-
""" Test création/accès/clonage formsemestre
"""
import pytest
from tests.unit import yaml_setup
import app
from app.models import Formation
from app.scodoc import sco_formsemestre_edit
from config import TestConfig
DEPT = TestConfig.DEPT_TEST
def test_formsemestres_associate_new_version(test_client):
"""Test association à une nouvelle version du programme"""
app.set_sco_dept(DEPT)
# Construit la base de test GB une seule fois
# puis lance les tests de jury
yaml_setup.setup_from_yaml("tests/ressources/yaml/simple_formsemestres.yaml")
formation = Formation.query.filter_by(acronyme="BUT GEII", version=1).first()
formsemestres = formation.formsemestres.all()
# On a deux S1:
assert len(formsemestres) == 2
assert {s.semestre_id for s in formsemestres} == {1}
# Les rattache à une nouvelle version de la formation:
formsemestre_ids = [s.id for s in formsemestres]
sco_formsemestre_edit.do_formsemestres_associate_new_version(formsemestre_ids)
new_formation: Formation = Formation.query.filter_by(
acronyme="BUT GEII", version=2
).first()
assert new_formation
assert formsemestres[0].formation_id == new_formation.id
assert formsemestres[1].formation_id == new_formation.id
......@@ -234,7 +234,10 @@ def setup_formsemestres(formation: Formation, doc: str):
def inscrit_les_etudiants(formation: Formation, doc: dict):
"""Inscrit les étudiants dans chacun de leurs formsemestres"""
for nom, infos in doc["Etudiants"].items():
etudiants = doc.get("Etudiants")
if not etudiants:
return
for nom, infos in etudiants.items():
etud = Identite.create_etud(
dept_id=g.scodoc_dept_id,
nom=nom,
......@@ -283,6 +286,8 @@ def setup_from_yaml(filename: str) -> dict:
)
yaml_setup_but.associe_ues_et_parcours(formation, doc["Formation"])
setup_formsemestres(formation, doc)
etudiants = doc.get("Etudiants")
if etudiants:
inscrit_les_etudiants(formation, doc)
note_les_modules(doc)
return doc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment