From 12e14dc6df126aff01880d269471b8ac90815bd4 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Thu, 19 Oct 2023 23:47:04 +0200
Subject: [PATCH] Fix unit tests

---
 tests/unit/sco_fake_gen.py   | 5 ++---
 tests/unit/setup.py          | 3 +--
 tests/unit/yaml_setup.py     | 9 ++++++++-
 tests/unit/yaml_setup_but.py | 2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/tests/unit/sco_fake_gen.py b/tests/unit/sco_fake_gen.py
index 1f2dff8bd..fe5b700ae 100644
--- a/tests/unit/sco_fake_gen.py
+++ b/tests/unit/sco_fake_gen.py
@@ -25,7 +25,6 @@ from app.models import (
     Matiere,
     ModuleImpl,
 )
-from app.scodoc import notesdb as ndb
 from app.scodoc import codes_cursus
 from app.scodoc import sco_edit_matiere
 from app.scodoc import sco_edit_module
@@ -41,8 +40,6 @@ from app.scodoc.sco_exceptions import ScoValueError
 from config import Config, TestConfig
 
 
-from tests.unit.setup import NOTES_T
-
 random.seed(12345)  # tests reproductibles
 
 
@@ -433,6 +430,8 @@ class ScoFake(object):
             notes: liste des notes (float).
             Si non spécifié, utilise la liste NOTES_T
         """
+        from tests.unit.setup import NOTES_T
+
         if notes is None:
             notes = NOTES_T
         for e in eval_list:
diff --git a/tests/unit/setup.py b/tests/unit/setup.py
index 776210358..31ea14964 100644
--- a/tests/unit/setup.py
+++ b/tests/unit/setup.py
@@ -7,14 +7,13 @@ from app import db, models
 from app.models import Formation
 import app.scodoc.sco_utils as scu
 from app.scodoc import codes_cursus
+from tests.unit import sco_fake_gen
 
 # Valeurs des notes saisies par les tests:
 NOTES_T = [
     float(x) for x in (20, 0, 10, 13 / 7.0, 12.5, 24.0 / 11) + tuple(range(1, 19))
 ]
 
-from tests.unit import sco_fake_gen
-
 
 def build_formation_test(
     nb_mods=1,
diff --git a/tests/unit/yaml_setup.py b/tests/unit/yaml_setup.py
index 577855ba5..6140537ce 100644
--- a/tests/unit/yaml_setup.py
+++ b/tests/unit/yaml_setup.py
@@ -127,7 +127,7 @@ def create_formsemestre(
     modules = [
         m
         for m in formsemestre.formation.modules.filter_by(semestre_id=semestre_id)
-        if (not m.parcours)  # module de tronc commun
+        if not m.parcours  # module de tronc commun
         or (not sem_parcours_ids)  # semestre sans parcours => tous
         or ({p.id for p in m.parcours} & sem_parcours_ids)
     ]
@@ -329,6 +329,13 @@ def setup_from_yaml(filename: str) -> tuple[dict, Formation, list[str]]:
     with open(filename, encoding="utf-8") as f:
         doc = yaml.safe_load(f.read())
 
+    # Passe tous les noms en majuscules (car stockés ainsi en base)
+    if "Etudiants" in doc:
+        doc["Etudiants"] = {k.upper(): v for (k, v) in doc["Etudiants"].items()}
+        for e in doc["Etudiants"].values():
+            if "prenom" in e:
+                e["prenom"] = e["prenom"].upper()
+
     # Charge de ref. comp. avant la formation, de façon à pouvoir
     # re-créer les associations UE/Niveaux
     yaml_setup_but.setup_formation_referentiel(doc.get("ReferentielCompetences", {}))
diff --git a/tests/unit/yaml_setup_but.py b/tests/unit/yaml_setup_but.py
index d87ca1350..0198fcf65 100644
--- a/tests/unit/yaml_setup_but.py
+++ b/tests/unit/yaml_setup_but.py
@@ -4,7 +4,7 @@
 # See LICENSE
 ##############################################################################
 
-"""Mise en place pour tests unitaires à partir de descriptions YAML: 
+"""Mise en place pour tests unitaires à partir de descriptions YAML:
      fonctions spécifiques au BUT
 """
 from pathlib import Path
-- 
GitLab