ScoDoc-PE/tests/unit/test_site_config.py

69 lines
2.7 KiB
Python

# -*- coding: utf-8 -*-
"""Test ScoDocSiteConfig (paramétrage général)
Utiliser comme:
pytest tests/unit/test_site_config.py
"""
from app.models.config import ScoDocSiteConfig, PersonalizedLink
from app.comp.bonus_spo import BonusIUTRennes1
from app.scodoc import sco_utils as scu
def test_scodoc_site_config(test_client):
"""Classe pour paramètres généraux"""
cfg = ScoDocSiteConfig.get_dict()
assert cfg == {} # aucune valeur au départ
try:
ScoDocSiteConfig.set_bonus_sport_class("invalid")
assert False # la ligne precédente doit lancer une exception
except NameError:
pass
bonus_sport = "bonus_iut_rennes1"
ScoDocSiteConfig.set_bonus_sport_class(bonus_sport)
cfg = ScoDocSiteConfig.get_dict()
assert tuple(ScoDocSiteConfig.get_dict().values()) == (bonus_sport,)
assert ScoDocSiteConfig.get_bonus_sport_class_name() == bonus_sport
assert ScoDocSiteConfig.get_bonus_sport_class() == BonusIUTRennes1
bonus_sport_class_names = ScoDocSiteConfig.get_bonus_sport_class_names()
assert isinstance(bonus_sport_class_names, list)
assert "" in bonus_sport_class_names
assert bonus_sport in bonus_sport_class_names
assert len(bonus_sport_class_names) > 5
assert all([x == "" or x.startswith("bonus_") for x in bonus_sport_class_names])
apo_dict = ScoDocSiteConfig.get_codes_apo_dict()
assert isinstance(apo_dict, dict)
assert "ABAN" in apo_dict
assert "ADM" in apo_dict
assert len(apo_dict) > 5
ScoDocSiteConfig.set_code_apo("ADSUP", "AZERTY")
assert ScoDocSiteConfig.get_codes_apo_dict()["ADSUP"] == "AZERTY"
assert ScoDocSiteConfig.get_code_apo("ADSUP") == "AZERTY"
assert ScoDocSiteConfig.get("azerty") == "" # default empty string
assert ScoDocSiteConfig.set("azerty", 99)
assert ScoDocSiteConfig.get("azerty") == "99" # converted to string
assert "azerty" in ScoDocSiteConfig.get_dict()
assert ScoDocSiteConfig.set("always_require_ine", 99)
# Converti en bool car déclaré dans NAMES:
assert ScoDocSiteConfig.get_dict()["always_require_ine"] == True
assert ScoDocSiteConfig.get("always_require_ine") == True
#
assert (
ScoDocSiteConfig.get_month_debut_annee_scolaire()
== scu.MONTH_DEBUT_ANNEE_SCOLAIRE
)
# Links:
assert ScoDocSiteConfig.get_perso_links() == []
ScoDocSiteConfig.set_perso_links(
[
PersonalizedLink(title="lien 1", url="http://foo.bar/bar", with_args=True),
PersonalizedLink(title="lien 1", url="http://foo.bar?x=1", with_args=True),
]
)
links = ScoDocSiteConfig.get_perso_links()
assert links[0].get_url(params={"y": 2}) == "http://foo.bar/bar?y=2"
assert links[1].get_url(params={"y": 2}) == "http://foo.bar?x=1&y=2"