From 6761f5a620c98e8e8d8fda5b487cb00bbd6f69d1 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 11 Feb 2024 21:19:45 +0100 Subject: [PATCH] =?UTF-8?q?Ajoute=20une=20v=C3=A9rification=20sur=20les=20?= =?UTF-8?q?semestres=20BUT:=20association=20aux=20parcours?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/but/cursus_but.py | 18 +++++++++++++++++- tests/scenarios/test_scenario1_formation.py | 8 ++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py index 8e3ae8b9c..1f453882e 100644 --- a/app/but/cursus_but.py +++ b/app/but/cursus_but.py @@ -447,8 +447,24 @@ def formsemestre_warning_apc_setup( }">formation n'est pas associée à un référentiel de compétence. """ - # Vérifie les niveaux de chaque parcours H = [] + # Le semestre n'a pas de parcours, mais les UE ont des parcours ? + if not formsemestre.parcours: + nb_ues_sans_parcours = len( + formsemestre.formation.query_ues_parcour(None) + .filter(UniteEns.semestre_idx == formsemestre.semestre_id) + .all() + ) + nb_ues_tot = ( + UniteEns.query.filter_by(formation=formsemestre.formation, type=UE_STANDARD) + .filter(UniteEns.semestre_idx == formsemestre.semestre_id) + .count() + ) + if nb_ues_sans_parcours != nb_ues_tot: + H.append( + f"""Le semestre n'est associé à aucun parcours, mais les UEs de la formation ont des parcours""" + ) + # Vérifie les niveaux de chaque parcours for parcour in formsemestre.parcours or [None]: annee = (formsemestre.semestre_id + 1) // 2 niveaux_ids = { diff --git a/tests/scenarios/test_scenario1_formation.py b/tests/scenarios/test_scenario1_formation.py index a4b13ee3f..d0c1549ee 100644 --- a/tests/scenarios/test_scenario1_formation.py +++ b/tests/scenarios/test_scenario1_formation.py @@ -11,14 +11,12 @@ 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 +@pytest.mark.skip # test obsolete def test_scenario1(test_client): """Applique "scenario 1""" run_scenario1() @@ -28,7 +26,9 @@ def run_scenario1(): G = sco_fake_gen.ScoFake(verbose=False) # Lecture fichier XML local: - with open("tests/unit/formation-exemple-1.xml") as f: + with open( + "tests/ressources/formations/formation-exemple-1.xml", encoding="utf8" + ) as f: doc = f.read() # --- Création de la formation