# -*- coding: utf-8 -*-

"""XXX OBSOLETE

Scenario: préparation base de données pour tests Selenium

S'utilise comme un test avec pytest, mais n'est pas un test !
Modifie la base de données du département TEST00

Usage: pytest tests/scenarios/test_scenario1_formation.py
"""
# code écrit par Fares Amer, mai 2021 et porté sur ScoDoc 8 en août 2021

from tests.unit import sco_fake_gen
from app.scodoc import sco_edit_module
from app.scodoc import sco_formations


@pytest.mark.skip  # test obsolete
def test_scenario1(test_client):
    """Applique "scenario 1"""
    run_scenario1()


def run_scenario1():
    G = sco_fake_gen.ScoFake(verbose=False)

    # Lecture fichier XML local:
    with open(
        "tests/ressources/formations/formation-exemple-1.xml", encoding="utf8"
    ) as f:
        doc = f.read()

    # --- Création de la formation
    f = sco_formations.formation_import_xml(doc=doc)

    # --- Création des semestres
    formation_id = f[0]
    # --- Mise en place de 4 semestres
    sems = [
        G.create_formsemestre(
            formation_id=formation_id,
            semestre_id=x[0],
            date_debut=x[1],
            date_fin=x[2],
        )
        for x in (
            (1, "01/09/2020", "01/02/2021"),
            (2, "02/02/2021", "01/06/2021"),
            (3, "01/09/2020", "01/02/2021"),
            (4, "02/02/2021", "01/06/2021"),
        )
    ]

    # --- Implémentation des modules
    modules = sco_edit_module.module_list({"formation_id": formation_id})
    mods_imp = []
    for mod in modules:
        mi = G.create_moduleimpl(
            module_id=mod["module_id"],
            formsemestre_id=sems[mod["semestre_id"] - 1]["formsemestre_id"],
        )
        mods_imp.append(mi)