forked from ScoDoc/ScoDoc
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
|
""" Test méthodes génériques sur les modèles ScoDoc
|
||
|
"""
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from flask import g
|
||
|
|
||
|
import app
|
||
|
from app import db
|
||
|
from app.models import Departement, GroupDescr
|
||
|
|
||
|
from config import TestConfig
|
||
|
from tests.unit import yaml_setup
|
||
|
|
||
|
DEPT = TestConfig.DEPT_TEST
|
||
|
|
||
|
|
||
|
def test_get_instance(test_client):
|
||
|
"""Test accès instance avec ou sans dept"""
|
||
|
assert DEPT
|
||
|
app.set_sco_dept(DEPT)
|
||
|
# Création d'un autre départment
|
||
|
other_dept = Departement(acronym="X666")
|
||
|
db.session.add(other_dept)
|
||
|
db.session.flush()
|
||
|
# Crée qq semestres...
|
||
|
doc, formation, formsemestre_titres = yaml_setup.setup_from_yaml(
|
||
|
"tests/ressources/yaml/simple_formsemestres.yaml"
|
||
|
)
|
||
|
for formsemestre_titre in formsemestre_titres:
|
||
|
formsemestre = yaml_setup.create_formsemestre_with_etuds(
|
||
|
doc, formation, formsemestre_titre
|
||
|
)
|
||
|
assert formsemestre
|
||
|
# prend l'exemple de GroupDescr
|
||
|
# Crée un formsemestre et un groupe
|
||
|
gr = GroupDescr.query.first()
|
||
|
assert gr
|
||
|
oid = gr.id
|
||
|
# Accès sans département (comme le fait l'API non départementale)
|
||
|
g.scodoc_dept = None
|
||
|
g.scodoc_dept_id = -1 # invalide
|
||
|
assert GroupDescr.get_instance(oid, accept_none=True).id == oid
|
||
|
# Accès avec le bon département
|
||
|
app.set_sco_dept(DEPT)
|
||
|
assert GroupDescr.get_instance(oid, accept_none=True).id == oid
|
||
|
# Accès avec un autre département
|
||
|
app.set_sco_dept(other_dept.acronym)
|
||
|
assert GroupDescr.get_instance(oid, accept_none=True) is None
|