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

import random

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


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/unit/formation-exemple-1.xml") 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)