diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py index 108d8029..50734f60 100644 --- a/app/but/cursus_but.py +++ b/app/but/cursus_but.py @@ -109,7 +109,7 @@ class EtudCursusBUT: "cache les niveaux" for annee in (1, 2, 3): niveaux_d = formation.referentiel_competence.get_niveaux_by_parcours( - annee, [self.parcour] + annee, [self.parcour] if self.parcour else None )[1] # groupe les niveaux de tronc commun et ceux spécifiques au parcour self.niveaux_by_annee[annee] = niveaux_d["TC"] + ( @@ -268,7 +268,9 @@ class FormSemestreCursusBUT: ) niveaux_by_annee = {} for annee in (1, 2, 3): - niveaux_d = ref_comp.get_niveaux_by_parcours(annee, [parcour])[1] + niveaux_d = ref_comp.get_niveaux_by_parcours( + annee, [parcour] if parcour else None + )[1] # groupe les niveaux de tronc commun et ceux spécifiques au parcour niveaux_by_annee[annee] = niveaux_d["TC"] + ( niveaux_d[parcour.id] if parcour else [] @@ -310,7 +312,6 @@ class FormSemestreCursusBUT: return validation_par_competence_et_annee def list_etud_inscriptions(self, etud: Identite): - "Le parcours à valider: celui du DERNIER semestre suivi (peut être None)" self.niveaux_by_annee = {} "{ annee : liste des niveaux à valider }" @@ -318,7 +319,7 @@ class FormSemestreCursusBUT: "cache les niveaux" for annee in (1, 2, 3): niveaux_d = formation.referentiel_competence.get_niveaux_by_parcours( - annee, [self.parcour] + annee, [self.parcour] if self.parcour else None # XXX WIP )[1] # groupe les niveaux de tronc commun et ceux spécifiques au parcour self.niveaux_by_annee[annee] = niveaux_d["TC"] + ( diff --git a/app/but/jury_but.py b/app/but/jury_but.py index 16a485b5..b78a8530 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -324,7 +324,7 @@ class DecisionsProposeesAnnee(DecisionsProposees): parcours, niveaux_by_parcours, ) = formation.referentiel_competence.get_niveaux_by_parcours( - self.annee_but, [self.parcour] + self.annee_but, [self.parcour] if self.parcour else None ) self.niveaux_competences = niveaux_by_parcours["TC"] + ( niveaux_by_parcours[self.parcour.id] if self.parcour else [] @@ -521,7 +521,7 @@ class DecisionsProposeesAnnee(DecisionsProposees): ramène [ listes des UE du semestre impair, liste des UE du semestre pair ]. """ ues_sems = [] - for (formsemestre, res) in ( + for formsemestre, res in ( (self.formsemestre_impair, self.res_impair), (self.formsemestre_pair, self.res_pair), ): diff --git a/tests/unit/setup.py b/tests/unit/setup.py index 968745d4..dced6a71 100644 --- a/tests/unit/setup.py +++ b/tests/unit/setup.py @@ -18,6 +18,10 @@ from tests.unit import sco_fake_gen def build_formation_test( nb_mods=1, parcours=codes_cursus.CursusBUT, with_ue_sport=False ): + """Crée une formation simple pour les tests. + Création à partir de zéro (n'importe pas un fichier xml). + Avec 3 UEs en S2 et une UE en S4. + """ G = sco_fake_gen.ScoFake(verbose=False) formation_id = G.create_formation( acronyme="F3", @@ -26,13 +30,25 @@ def build_formation_test( type_parcours=parcours.TYPE_CURSUS, ) _ue1 = G.create_ue( - formation_id=formation_id, acronyme="UE1", titre="ue 1", semestre_idx=2 + formation_id=formation_id, + acronyme="UE1", + titre="ue 1", + semestre_idx=2, + numero=1, ) _ue2 = G.create_ue( - formation_id=formation_id, acronyme="UE2", titre="ue 2", semestre_idx=2 + formation_id=formation_id, + acronyme="UE2", + titre="ue 2", + semestre_idx=2, + numero=2, ) _ue3 = G.create_ue( - formation_id=formation_id, acronyme="UE3", titre="ue 3", semestre_idx=2 + formation_id=formation_id, + acronyme="UE3", + titre="ue 3", + semestre_idx=2, + numero=3, ) ue_ids = [_ue1, _ue2, _ue3] # une 4eme UE en dehors du semestre 2 diff --git a/tests/unit/test_refcomp.py b/tests/unit/test_refcomp.py index d26f2a16..72e61f2e 100644 --- a/tests/unit/test_refcomp.py +++ b/tests/unit/test_refcomp.py @@ -128,20 +128,26 @@ def test_refcomp_niveaux_mlt(test_client): # Vérifier les niveaux_by_parcours parcour = ref_comp.parcours.first() # BUT 1 - parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours(1, [parcour]) + parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( + 1, [parcour] if parcour else None + ) assert parcours == [parcour] # le parcours indiqué assert (tuple(niveaux_by_parcours.keys())) == (parcour.id, "TC") assert niveaux_by_parcours[parcour.id] == [] # tout en tronc commun en BUT1 MLT assert niveaux_by_parcours["TC"][0].competence.titre == "Transporter" assert len(niveaux_by_parcours["TC"]) == 3 # BUT 2 - parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours(2, [parcour]) + parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( + 2, [parcour] if parcour else None + ) assert parcours == [parcour] # le parcours indiqué assert (tuple(niveaux_by_parcours.keys())) == (parcour.id, "TC") assert len(niveaux_by_parcours[parcour.id]) == 1 assert len(niveaux_by_parcours["TC"]) == 3 # BUT 3 - parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours(3, [parcour]) + parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( + 3, [parcour] if parcour else None + ) assert parcours == [parcour] # le parcours indiqué assert (tuple(niveaux_by_parcours.keys())) == (parcour.id, "TC") assert len(niveaux_by_parcours[parcour.id]) == 1 @@ -185,13 +191,17 @@ def test_refcomp_niveaux_gccd(test_client): # Vérifier les niveaux_by_parcours parcour = ref_comp.parcours.first() # BUT 1 - parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours(1, [parcour]) + parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( + 1, [parcour] if parcour else None + ) assert parcours == [parcour] # le parcours indiqué assert (tuple(niveaux_by_parcours.keys())) == (parcour.id, "TC") assert len(niveaux_by_parcours[parcour.id]) == 0 assert len(niveaux_by_parcours["TC"]) == 5 # BUT 3 - parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours(3, [parcour]) + parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( + 3, [parcour] if parcour else None + ) assert parcours == [parcour] # le parcours indiqué assert (tuple(niveaux_by_parcours.keys())) == (parcour.id, "TC") assert len(niveaux_by_parcours[parcour.id]) == 3