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