ScoDoc/tests/unit/test_refcomp.py

61 lines
1.8 KiB
Python
Raw Normal View History

2021-12-02 12:08:03 +01:00
"""Test models referentiel compétences
Utiliser par exemple comme:
pytest tests/unit/test_refcomp.py
"""
2022-07-05 16:09:26 +02:00
2021-12-02 12:08:03 +01:00
from flask import g
2022-07-05 16:09:26 +02:00
2021-12-02 12:08:03 +01:00
from app import db
2021-12-03 14:13:49 +01:00
from app import models
2021-12-02 12:08:03 +01:00
from app.but.import_refcomp import orebut_import_refcomp
2022-07-05 16:09:26 +02:00
from app.models import UniteEns
2021-12-02 12:08:03 +01:00
from app.models.but_refcomp import (
ApcReferentielCompetences,
ApcCompetence,
ApcSituationPro,
2022-07-05 16:09:26 +02:00
ApcNiveau,
2021-12-02 12:08:03 +01:00
)
2022-07-05 16:09:26 +02:00
from tests.unit import setup
REF_RT_XML = open(
"ressources/referentiels/but2022/competences/but-RT-05012022-081735.xml"
).read()
2021-12-02 12:08:03 +01:00
def test_but_refcomp(test_client):
"""modèles ref. comp."""
2021-12-03 14:13:49 +01:00
dept_id = models.Departement.query.first().id
2022-07-05 16:09:26 +02:00
ref_comp: ApcReferentielCompetences = orebut_import_refcomp(REF_RT_XML, dept_id)
assert ref_comp.competences.count() == 13
assert ref_comp.competences[0].situations.count() == 3
assert ref_comp.competences[0].situations[0].libelle.startswith("Conception ")
2021-12-03 14:13:49 +01:00
assert (
2022-07-05 16:09:26 +02:00
ref_comp.competences[-1].situations[-1].libelle
2021-12-03 14:13:49 +01:00
== "Administration des services multimédia"
)
2021-12-02 12:08:03 +01:00
# test cascades on delete
2022-07-05 16:09:26 +02:00
db.session.delete(ref_comp)
2021-12-02 12:08:03 +01:00
db.session.commit()
assert ApcCompetence.query.count() == 0
assert ApcSituationPro.query.count() == 0
2022-07-05 16:09:26 +02:00
def test_but_assoc_ue_parcours(test_client):
"""Association UE / Niveau compétence"""
dept_id = models.Departement.query.first().id
G, formation_id, (ue1_id, ue2_id, ue3_id), module_ids = setup.build_formation_test()
ref_comp: ApcReferentielCompetences = orebut_import_refcomp(REF_RT_XML, dept_id)
ue = UniteEns.query.get(ue1_id)
assert ue.niveau_competence is None
niveau = ApcNiveau.query.first()
ue.niveau_competence = niveau
db.session.add(ue)
db.session.commit()
ue = UniteEns.query.get(ue1_id)
assert ue.niveau_competence == niveau
assert len(niveau.ues) == 1
assert niveau.ues[0] == ue