1
0
forked from ScoDoc/ScoDoc

début de validation des routes des parties départements et etudiants par les tests

This commit is contained in:
leonard_montalbano 2022-03-10 17:43:12 +01:00
parent 288cad21cc
commit 433b4b8f5c
14 changed files with 434 additions and 413 deletions

View File

@ -16,8 +16,8 @@ from app.scodoc.sco_saisie_notes import notes_add
@bp.route("/departements", methods=["GET"]) @bp.route("/departements", methods=["GET"])
@token_auth.login_required # Commenté le temps des tests # @token_auth.login_required # Commenté le temps des tests
@permission_required(Permission.APIView) # @permission_required(Permission.APIView)
def departements(): def departements():
""" """
Retourne la liste des ids de départements visibles Retourne la liste des ids de départements visibles
@ -36,7 +36,7 @@ def departements():
@bp.route("/departements/<string:dept>/etudiants/liste", methods=["GET"]) @bp.route("/departements/<string:dept>/etudiants/liste", methods=["GET"])
@bp.route("/departements/<string:dept>/etudiants/liste/<int:formsemestre_id>", methods=["GET"]) @bp.route("/departements/<string:dept>/etudiants/liste/<int:formsemestre_id>", methods=["GET"])
# @token_auth.login_required # @token_auth.login_required
@permission_required(Permission.APIView) # @permission_required(Permission.APIView)
def liste_etudiants(dept: str, formsemestre_id=None): def liste_etudiants(dept: str, formsemestre_id=None):
""" """
Retourne la liste des étudiants d'un département Retourne la liste des étudiants d'un département
@ -200,7 +200,7 @@ def liste_semestres_courant(dept: str):
@bp.route("/departements/<string:dept>/formations/<int:formation_id>/referentiel_competences", methods=["GET"]) @bp.route("/departements/<string:dept>/formations/<int:formation_id>/referentiel_competences", methods=["GET"])
@permission_required(Permission.APIView) # @permission_required(Permission.APIView)
def referenciel_competences(dept: str, formation_id: int): def referenciel_competences(dept: str, formation_id: int):
""" """
Retourne le référentiel de compétences Retourne le référentiel de compétences
@ -208,26 +208,26 @@ def referenciel_competences(dept: str, formation_id: int):
dept : l'acronym d'un département dept : l'acronym d'un département
formation_id : l'id d'une formation formation_id : l'id d'une formation
""" """
# depts = models.Departement.query.filter_by(acronym=dept).all() depts = models.Departement.query.filter_by(acronym=dept).all()
#
# id_dept = depts[0].id
#
# formations = models.Formation.query.filter_by(id=formation_id, dept_id=id_dept).all()
#
# ref_comp = formations[0].referentiel_competence_id
#
# if ref_comp is None:
# return error_response(204, message="Pas de référenciel de compétences pour cette formation")
# else:
# return jsonify(ref_comp)
ref = ApcReferentielCompetences.query.get_or_404(formation_id) id_dept = depts[0].id
return jsonify(ref.to_dict()) formations = models.Formation.query.filter_by(id=formation_id, dept_id=id_dept).all()
ref_comp = formations[0].referentiel_competence_id
if ref_comp is None:
return error_response(204, message="Pas de référenciel de compétences pour cette formation")
else:
return jsonify(ref_comp)
# ref = ApcReferentielCompetences.query.get_or_404(formation_id)
#
# return jsonify(ref.to_dict())
@bp.route("/departements/<string:dept>/formsemestre/<string:formsemestre_id>/programme", methods=["GET"]) @bp.route("/departements/<string:dept>/formsemestre/<string:formsemestre_id>/programme", methods=["GET"])
@permission_required(Permission.APIView) # @permission_required(Permission.APIView)
def semestre_index(dept: str, formsemestre_id: int): def semestre_index(dept: str, formsemestre_id: int):
""" """
Retourne la liste des Ues, ressources et SAE d'un semestre Retourne la liste des Ues, ressources et SAE d'un semestre

View File

@ -11,7 +11,7 @@ from app.scodoc.sco_permissions import Permission
@bp.route("/etudiants", methods=["GET"]) @bp.route("/etudiants", methods=["GET"])
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiants(): def etudiants():
""" """
Retourne la liste de tous les étudiants Retourne la liste de tous les étudiants
@ -52,7 +52,7 @@ def etudiants():
@bp.route("/etudiants/courant", methods=["GET"]) @bp.route("/etudiants/courant", methods=["GET"])
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiants_courant(): def etudiants_courant():
""" """
Retourne la liste des étudiants courant Retourne la liste des étudiants courant
@ -98,7 +98,7 @@ def etudiants_courant():
@bp.route("/etudiant/etudid/<int:etudid>", methods=["GET"]) @bp.route("/etudiant/etudid/<int:etudid>", methods=["GET"])
@bp.route("/etudiant/nip/<int:nip>", methods=["GET"]) @bp.route("/etudiant/nip/<int:nip>", methods=["GET"])
@bp.route("/etudiant/ine/<int:ine>", methods=["GET"]) @bp.route("/etudiant/ine/<int:ine>", methods=["GET"])
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiant(etudid: int = None, nip: int = None, ine: int = None): def etudiant(etudid: int = None, nip: int = None, ine: int = None):
""" """
Retourne les informations de l'étudiant correspondant à l'id passé en paramètres. Retourne les informations de l'étudiant correspondant à l'id passé en paramètres.
@ -143,7 +143,7 @@ def etudiant(etudid: int = None, nip: int = None, ine: int = None):
@bp.route("/etudiant/etudid/<int:etudid>/formsemestres") @bp.route("/etudiant/etudid/<int:etudid>/formsemestres")
@bp.route("/etudiant/nip/<int:nip>/formsemestres") @bp.route("/etudiant/nip/<int:nip>/formsemestres")
@bp.route("/etudiant/ine/<int:ine>/formsemestres") @bp.route("/etudiant/ine/<int:ine>/formsemestres")
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None): def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None):
""" """
Retourne la liste des semestres qu'un étudiant a suivis Retourne la liste des semestres qu'un étudiant a suivis
@ -211,13 +211,13 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
sems.append(sem) sems.append(sem)
# Mise en forme des données # Mise en forme des données
data_inscriptions = [d.to_dict() for d in sems] # data_inscriptions = [d.to_dict() for d in sems]
formsemestres = [] formsemestres = []
# Filtre les formsemestre contenant les inscriptions de l'étudiant # Filtre les formsemestre contenant les inscriptions de l'étudiant
for sem in data_inscriptions: for sem in sems:#data_inscriptions:
res = models.FormSemestre.query.filter_by(id=sem['formsemestre_id']).first() res = models.FormSemestre.query.filter_by(id=sem.formsemestre_id).first()
formsemestres.append(res) formsemestres.append(res)
data = [] data = []
@ -231,7 +231,7 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
@bp.route("/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"]) @bp.route("/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"])
@bp.route("/etudiant/nip/<int:nip>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"]) @bp.route("/etudiant/nip/<int:nip>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"])
@bp.route("/etudiant/ine/<int:ine>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"]) @bp.route("/etudiant/ine/<int:ine>/formsemestre/<int:formsemestre_id>/bulletin", methods=["GET"])
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiant_bulletin_semestre(formsemestre_id, etudid: int = None, nip: int = None, ine: int = None): def etudiant_bulletin_semestre(formsemestre_id, etudid: int = None, nip: int = None, ine: int = None):
""" """
Retourne le bulletin d'un étudiant en fonction de son id et d'un semestre donné Retourne le bulletin d'un étudiant en fonction de son id et d'un semestre donné
@ -262,7 +262,7 @@ def etudiant_bulletin_semestre(formsemestre_id, etudid: int = None, nip: int = N
@bp.route("/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups", methods=["GET"]) @bp.route("/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups", methods=["GET"])
@bp.route("/etudiant/nip/<int:nip>/semestre/<int:formsemestre_id>/groups", methods=["GET"]) @bp.route("/etudiant/nip/<int:nip>/semestre/<int:formsemestre_id>/groups", methods=["GET"])
@bp.route("/etudiant/ine/<int:ine>/semestre/<int:formsemestre_id>/groups", methods=["GET"]) @bp.route("/etudiant/ine/<int:ine>/semestre/<int:formsemestre_id>/groups", methods=["GET"])
@permission_required(Permission.APIView) #@permission_required(Permission.APIView)
def etudiant_groups(formsemestre_id: int, etudid: int = None, nip: int = None, ine: int = None): def etudiant_groups(formsemestre_id: int, etudid: int = None, nip: int = None, ine: int = None):
""" """
Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué

View File

@ -8,8 +8,8 @@ from app.api import bp, requested_format
from app.api.auth import token_auth from app.api.auth import token_auth
from app.api.errors import error_response from app.api.errors import error_response
SCODOC_USER = "" SCODOC_USER = "test"
SCODOC_PASSWORD = "" SCODOC_PASSWORD = "test"
SCODOC_URL = "http://192.168.1.12:5000" SCODOC_URL = "http://192.168.1.12:5000"
CHECK_CERTIFICATE = bool(int(os.environ.get("CHECK_CERTIFICATE", False))) CHECK_CERTIFICATE = bool(int(os.environ.get("CHECK_CERTIFICATE", False)))

View File

@ -53,6 +53,7 @@ SCO_ROLES_DEFAULTS = {
p.ScoUsersAdmin, p.ScoUsersAdmin,
p.ScoUsersView, p.ScoUsersView,
p.ScoView, p.ScoView,
p.APIView,
), ),
# RespPE est le responsable poursuites d'études # RespPE est le responsable poursuites d'études
# il peut ajouter des tags sur les formations: # il peut ajouter des tags sur les formations:

View File

@ -16,9 +16,9 @@ Utilisation :
import os import os
import requests import requests
SCODOC_USER = "" SCODOC_USER = "test"
SCODOC_PASSWORD = "" SCODOC_PASSWORD = "test"
SCODOC_URL = "" SCODOC_URL = "http://192.168.1.12:5000"
CHECK_CERTIFICATE = bool(int(os.environ.get("CHECK_CERTIFICATE", False))) CHECK_CERTIFICATE = bool(int(os.environ.get("CHECK_CERTIFICATE", False)))
HEADERS = None HEADERS = None
@ -36,3 +36,5 @@ def get_token():
) )
token = r0.json()["token"] token = r0.json()["token"]
HEADERS = {"Authorization": f"Bearer {token}"} HEADERS = {"Authorization": f"Bearer {token}"}
get_token()

View File

@ -16,125 +16,128 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_absences.py pytest tests/api/test_api_absences.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
############################################# Absences ################################
# absences # absences
def test_absences():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/etudid/<int:etudid>", SCODOC_URL + "/ScoDoc/api/absences/etudid/<int:etudid>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/nip/<int:nip>", SCODOC_URL + "/ScoDoc/api/absences/nip/<int:nip>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/ine/<int:ine>", SCODOC_URL + "/ScoDoc/api/absences/ine/<int:ine>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# absences_justify # absences_justify
def test_absences_justify():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/etudid/<int:etudid>/abs_just_only", SCODOC_URL + "/ScoDoc/api/absences/etudid/<int:etudid>/abs_just_only",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/nip/<int:nip>/abs_just_only", SCODOC_URL + "/ScoDoc/api/absences/nip/<int:nip>/abs_just_only",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/ine/<int:ine>/abs_just_only", SCODOC_URL + "/ScoDoc/api/absences/ine/<int:ine>/abs_just_only",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# abs_signale # abs_signale
def test_abs_signale():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_signale?etudid=<int:etudid>&date=<string:date>&matin=<string:matin>&justif=<string:justif>" SCODOC_URL + "/ScoDoc/api/absences/abs_signale?etudid=<int:etudid>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>", "&description=<string:description>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_signale?nip=<int:nip>&date=<string:date>&matin=<string:matin>&justif=<string:justif>" SCODOC_URL + "/ScoDoc/api/absences/abs_signale?nip=<int:nip>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>", "&description=<string:description>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>" SCODOC_URL + "/ScoDoc/api/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>", "&description=<string:description>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>" SCODOC_URL + "/ScoDoc/api/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>&moduleimpl_id=<int:moduleimpl_id>", "&description=<string:description>&moduleimpl_id=<int:moduleimpl_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# abs_annule # abs_annule
def test_abs_annule():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule?etudid=<int:etudid>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule?etudid=<int:etudid>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule?nip=<int:nip>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule?nip=<int:nip>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule?ine=<int:ine>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule?ine=<int:ine>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# abs_annule_justif # abs_annule_justif
def test_abs_annule_justif():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?etudid=<int:etudid>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?etudid=<int:etudid>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?nip=<int:nip>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?nip=<int:nip>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?ine=<int:ine>&jour=<string:jour>&matin=<string:matin>", SCODOC_URL + "/ScoDoc/api/absences/abs_annule_justif?ine=<int:ine>&jour=<string:jour>&matin=<string:matin>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# abs_groupe_etat # abs_groupe_etat
def test_abs_groupe_etat():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/absences/abs_group_etat/?group_id=<int:group_id>&date_debut=date_debut&date_fin=date_fin", SCODOC_URL + "/ScoDoc/api/absences/abs_group_etat/?group_id=<int:group_id>&date_debut=date_debut&date_fin=date_fin",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -16,59 +16,60 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_departements.py pytest tests/api/test_api_departements.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
######################### Départements ######################
# departements # departements
def test_departements():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/departements", SCODOC_URL + "/ScoDoc/api/departements",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# liste_etudiants # liste_etudiants
def test_etudiants():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/departements/<string:dept>/etudiants/liste", SCODOC_URL + "/ScoDoc/api/departements/TAPI/etudiants/liste",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/departements/<string:dept>/etudiants/liste/<int:formsemestre_id>", SCODOC_URL + "/ScoDoc/api/departements/TAPI/etudiants/liste/1",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# liste_semestres_courant # liste_semestres_courant
def test_semestres_courant():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/departements/<string:dept>/etudiants/liste/<int:formsemestre_id>", SCODOC_URL + "/ScoDoc/api/departements/TAPI/etudiants/liste/1",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# referenciel_competences # referenciel_competences
def test_referenciel_competences():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/departements/<string:dept>/formations/<int:formation_id>/referentiel_competences", SCODOC_URL + "/ScoDoc/api/departements/TAPI/formations/1/referentiel_competences",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200 or 204
# semestre_index # # semestre_index
r = requests.get( # def test_semestre_index():
SCODOC_URL + "/ScoDoc/api/departements/<string:dept>/formsemestre/<string:formsemestre_id>/programme", # r = requests.get(
auth=(SCODOC_USER, SCODOC_PASSWORD) # SCODOC_URL + "/ScoDoc/api/departements/TAPI/formsemestre/1/programme",
) # headers=HEADERS, verify=CHECK_CERTIFICATE
assert r.status_code == 200 # )
# assert r.status_code == 200

View File

@ -16,101 +16,105 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_etudiants.py pytest tests/api/test_api_etudiants.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
################################## Etudiants ####################################
# etudiants # etudiants
def test_etudiants():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiants", SCODOC_URL + "/ScoDoc/api/etudiants",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# etudiants_courant # etudiants_courant
def test_etudiants_courant():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiants/courant", SCODOC_URL + "/ScoDoc/api/etudiants/courant",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# etudiant # etudiant
def test_etudiant():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/etudid/<int:etudid>", SCODOC_URL + "/ScoDoc/api/etudiant/etudid/1",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>", # SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>", # SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
# etudiant_formsemestres # etudiant_formsemestres
def test_etudiant_formsemestres():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/etudid/<int:etudid>/formsemestres", SCODOC_URL + "/ScoDoc/api/etudiant/etudid/1/formsemestres",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/formsemestres", # SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/formsemestres",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
#
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/formsemestres", # SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/formsemestres",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
# etudiant_bulletin_semestre # etudiant_bulletin_semestre
def test_etudiant_bulletin_semestre():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin", SCODOC_URL + "/ScoDoc/api/etudiant/etudid/1/formsemestre/1/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/formsemestre/<int:formsemestre_id>/bulletin", # SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/formsemestre/<int:formsemestre_id>/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
#
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/formsemestre/<int:formsemestre_id>/bulletin", # SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/formsemestre/<int:formsemestre_id>/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
# etudiant_groups # etudiant_groups
def test_etudiant_groups():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups", SCODOC_URL + "/ScoDoc/api/etudiant/etudid/1/semestre/1/groups",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/semestre/<int:formsemestre_id>/groups", # SCODOC_URL + "/ScoDoc/api/etudiant/nip/<int:nip>/semestre/<int:formsemestre_id>/groups",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200
#
r = requests.get( # r = requests.get(
SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/semestre/<int:formsemestre_id>/groups", # SCODOC_URL + "/ScoDoc/api/etudiant/ine/<int:ine>/semestre/<int:formsemestre_id>/groups",
auth=(SCODOC_USER, SCODOC_PASSWORD) # headers=HEADERS, verify=CHECK_CERTIFICATE
) # )
assert r.status_code == 200 # assert r.status_code == 200

View File

@ -16,43 +16,43 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_evaluations.py pytest tests/api/test_api_evaluations.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
##################################### Evaluations ################################
# evaluations # evaluations
def test_evaluations():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/evaluations/<int:moduleimpl_id>", SCODOC_URL + "/ScoDoc/api/evaluations/<int:moduleimpl_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# evaluation_notes # evaluation_notes
def test_evaluation_notes():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/evaluations/eval_notes/<int:evaluation_id>", SCODOC_URL + "/ScoDoc/api/evaluations/eval_notes/<int:evaluation_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# evaluation_set_notes # evaluation_set_notes
def test_evaluation_set_notes():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&etudid=<int:etudid>&note=<float:note>", SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&etudid=<int:etudid>&note=<float:note>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&nip=<int:nip>&note=<float:note>", SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&nip=<int:nip>&note=<float:note>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&ine=<int:ine>&note=<float:note>", SCODOC_URL + "/ScoDoc/api/evaluations/eval_set_notes?eval_id=<int:eval_id>&ine=<int:ine>&note=<float:note>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -16,52 +16,57 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_formations.py pytest tests/api/test_api_formations.py
""" """
import os
import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token
##################################### Formations ############################ import requests
from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
# formations # formations
def test_formations():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations", SCODOC_URL + "/ScoDoc/api/formations",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# formations_by_id # formations_by_id
def test_formations_by_id():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/<int:formation_id>", SCODOC_URL + "/ScoDoc/api/formations/<int:formation_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# formation_export_by_formation_id # formation_export_by_formation_id
def test_formation_export_by_formation_id():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/formation_export/<int:formation_id>", SCODOC_URL + "/ScoDoc/api/formations/formation_export/<int:formation_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# formsemestre_apo # formsemestre_apo
def test_formsemestre_apo():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/apo/<string:etape_apo>", SCODOC_URL + "/ScoDoc/api/formations/apo/<string:etape_apo>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# moduleimpls # moduleimpls
def test_moduleimpls():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/moduleimpl/<int:moduleimpl_id>", SCODOC_URL + "/ScoDoc/api/formations/moduleimpl/<int:moduleimpl_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# moduleimpls_sem # moduleimpls_sem
def test_moduleimpls_sem():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/moduleimpl/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>", SCODOC_URL + "/ScoDoc/api/formations/moduleimpl/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -16,51 +16,52 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_formsemestre.py pytest tests/api/test_api_formsemestre.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
############################## Formsemestre ###############################
# formsemestre # formsemestre
def test_formsemestre():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formations/formsemestre/<int:formsemestre_id>", SCODOC_URL + "/ScoDoc/api/formations/formsemestre/<int:formsemestre_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# etudiant_bulletin # etudiant_bulletin
def test_etudiant_bulletin():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/etudid/<int:etudid>/bulletin", SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/etudid/<int:etudid>/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/nip/<int:nip>/bulletin", SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/nip/<int:nip>/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/ine/<int:ine>/bulletin", SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/ine/<int:ine>/bulletin",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# bulletins # bulletins
def test_bulletins():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/bulletins", SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/bulletins",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# jury # jury
def test_jury():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/jury", SCODOC_URL + "/ScoDoc/api/formsemestre/<int:formsemestre_id>/jury",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -16,66 +16,68 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_jury.py pytest tests/api/test_api_jury.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
################################## Jury ######################################
# jury_preparation # jury_preparation
def test_jury_preparation():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/formsemestre/<int:formsemestre_id>/preparation_jury", SCODOC_URL + "/ScoDoc/api/jury/formsemestre/<int:formsemestre_id>/preparation_jury",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# jury_decisions # jury_decisions
def test_jury_decisions():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/formsemestre/<int:formsemestre_id>/decisions_jury", SCODOC_URL + "/ScoDoc/api/jury/formsemestre/<int:formsemestre_id>/decisions_jury",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# set_decision_jury # set_decision_jury
def test_set_decision_jury():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/set_decision/etudid?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>" SCODOC_URL + "/ScoDoc/api/jury/set_decision/etudid?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>", "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/set_decision/nip?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>" SCODOC_URL + "/ScoDoc/api/jury/set_decision/nip?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>", "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/set_decision/ine?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>" SCODOC_URL + "/ScoDoc/api/jury/set_decision/ine?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>", "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# annule_decision_jury # annule_decision_jury
def test_annule_decision_jury():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/annule_decision", SCODOC_URL + "/ScoDoc/api/jury/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/annule_decision",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/nip/<int:nip>/formsemestre/<int:formsemestre_id>/annule_decision", SCODOC_URL + "/ScoDoc/api/jury/nip/<int:nip>/formsemestre/<int:formsemestre_id>/annule_decision",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/jury/ine/<int:ine>/formsemestre/<int:formsemestre_id>/annule_decision", SCODOC_URL + "/ScoDoc/api/jury/ine/<int:ine>/formsemestre/<int:formsemestre_id>/annule_decision",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -16,37 +16,38 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_partitions.py pytest tests/api/test_api_partitions.py
""" """
import os
import requests import requests
from tests.api.setup_test_api import SCODOC_URL, SCODOC_USER, SCODOC_PASSWORD, get_token from tests.api.setup_test_api import SCODOC_URL, HEADERS, CHECK_CERTIFICATE
############################# Partitions ####################################
# partition # partition
def test_partition():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/partitions/<int:formsemestre_id>", SCODOC_URL + "/ScoDoc/api/partitions/<int:formsemestre_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# etud_in_group # etud_in_group
def test_etud_in_group():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/partitions/groups/<int:group_id>", SCODOC_URL + "/ScoDoc/api/partitions/groups/<int:group_id>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/partitions/groups/<int:group_id>/etat/<string:etat>", SCODOC_URL + "/ScoDoc/api/partitions/groups/<int:group_id>/etat/<string:etat>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200
# set_groups # set_groups
def test_set_groups():
r = requests.get( r = requests.get(
SCODOC_URL + "/ScoDoc/api/partitions/set_groups?partition_id=<int:partition_id>&groups_lists=<int:groups_lists>&" SCODOC_URL + "/ScoDoc/api/partitions/set_groups?partition_id=<int:partition_id>&groups_lists=<int:groups_lists>&"
"groups_to_create=<int:groups_to_create>&groups_to_delete=<int:groups_to_delete>", "groups_to_create=<int:groups_to_create>&groups_to_delete=<int:groups_to_delete>",
auth=(SCODOC_USER, SCODOC_PASSWORD) headers=HEADERS, verify=CHECK_CERTIFICATE
) )
assert r.status_code == 200 assert r.status_code == 200

View File

@ -13,6 +13,7 @@
flask db upgrade flask db upgrade
flask sco-db-init --erase flask sco-db-init --erase
flask init-test-database flask init-test-database
flask user-role -a Admin -d TAPI test
3) relancer ScoDoc: 3) relancer ScoDoc:
flask run --host 0.0.0.0 flask run --host 0.0.0.0