""" 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