""" Test jury BUT avec parcours """ import pytest import yaml from tests.unit import setup_test_yaml as sty import app from app.but.jury_but import DecisionsProposeesAnnee from app.models import ( Formation, FormSemestre, Identite, UniteEns, ) from app.scodoc import sco_utils as scu from config import TestConfig DEPT = TestConfig.DEPT_TEST def test_but_jury_S1(test_client): """Test jurys BUT1 avec un seul parcours. Vérifie aussi les champs de DecisionsProposeesAnnee """ app.set_sco_dept(DEPT) doc = sty.setup_from_yaml("tests/unit/cursus_but_gb.yaml") formsemestre: FormSemestre = FormSemestre.query.filter_by(titre="S1_SEE").first() etud: Identite = formsemestre.etuds.first() deca = DecisionsProposeesAnnee(etud, formsemestre) assert deca.validation is None # pas encore de validation enregistrée assert False is deca.recorded assert deca.code_valide is None assert deca.formsemestre_impair == formsemestre assert deca.formsemestre_pair is None # jury de S1, pas de S2 assert deca.rcues_annee == [] # S1, pas de RCUEs assert deca.inscription_etat == scu.INSCRIT assert deca.inscription_etat_impair == scu.INSCRIT assert deca.parcour == formsemestre.parcours[0] # un seul parcours dans ce sem. assert formsemestre.query_ues().all() == deca.ues_impair nb_ues = formsemestre.query_ues().count() assert len(deca.decisions_ues) == nb_ues assert len(deca.niveaux_competences) == nb_ues assert deca.nb_competences == nb_ues # XXX à compléter avec le jury quand on aura décidé des notes def test_but_jury_S3(test_client): """Test jurys BUT2/S3 avec 2 parcours dans le sem.""" app.set_sco_dept(DEPT) doc = sty.setup_from_yaml("tests/unit/cursus_but_gb.yaml") formsemestre: FormSemestre = FormSemestre.query.filter_by(titre="S3").first() etud: Identite = formsemestre.etuds.filter_by( prenom="Étudiant_SEE" ).first() # du parcours SEE assert etud deca = DecisionsProposeesAnnee(etud, formsemestre) assert len(deca.niveaux_competences) == 5 # 5 compétences dans ce parcours