forked from ScoDoc/ScoDoc
ajout tests unitaires pour bulletins formsemestre
This commit is contained in:
parent
9474d420df
commit
98634f0d93
@ -21,14 +21,36 @@ import requests
|
||||
from app.api.formsemestres import formsemestre
|
||||
|
||||
from tests.api.setup_test_api import API_URL, CHECK_CERTIFICATE, api_headers
|
||||
|
||||
from tests.api.tools_test_api import (
|
||||
MODIMPL_FIELDS,
|
||||
verify_fields,
|
||||
MODIMPL_FIELDS,
|
||||
EVAL_FIELDS,
|
||||
SAISIE_NOTES_FIELDS,
|
||||
FORMSEMESTRE_ETUS_FIELDS,
|
||||
FSEM_FIELDS,
|
||||
FSEM_FIELDS,
|
||||
UE_FIELDS,
|
||||
MODULE_FIELDS,
|
||||
FORMSEMESTRE_BULLETINS_FIELDS,
|
||||
FORMSEMESTRE_BULLETINS_ETU_FIELDS,
|
||||
FORMSEMESTRE_BULLETINS_FORMATION_FIELDS,
|
||||
FORMSEMESTRE_BULLETINS_OPT_FIELDS,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_FIELDS,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_FIELDS,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_POIDS_FIELDS,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_NOTE_FIELDS,
|
||||
BULLETIN_UES_UE_FIELDS,
|
||||
BULLETIN_UES_UE_MOYENNE_FIELDS,
|
||||
BULLETIN_UES_UE_RESSOURCES_RESSOURCE_FIELDS,
|
||||
BULLETIN_UES_UE_SAES_SAE_FIELDS,
|
||||
BULLETIN_UES_UE_ECTS_FIELDS,
|
||||
BULLETIN_SEMESTRE_FIELDS,
|
||||
BULLETIN_SEMESTRE_ABSENCES_FIELDS,
|
||||
BULLETIN_SEMESTRE_ECTS_FIELDS,
|
||||
BULLETIN_SEMESTRE_NOTES_FIELDS,
|
||||
BULLETIN_SEMESTRE_RANG_FIELDS,
|
||||
)
|
||||
from tests.api.tools_test_api import FSEM_FIELDS, UE_FIELDS, MODULE_FIELDS
|
||||
|
||||
# Etudiant pour les tests
|
||||
ETUDID = 1
|
||||
@ -143,26 +165,318 @@ def test_formsemestre_apo(api_headers):
|
||||
assert isinstance(formsemestre["titre"], str)
|
||||
|
||||
### ERROR ###
|
||||
etape_apo_inexistante = "aoefiaozidaoẑidjnoaiznjd"
|
||||
r_error = requests.get(
|
||||
f"{API_URL}/formsemestre/apo/{etape_apo_inexistante}",
|
||||
headers=api_headers,
|
||||
verify=CHECK_CERTIFICATE,
|
||||
)
|
||||
assert r_error.status_code == 404
|
||||
# etape_apo_inexistante = "aoefiaozidaoẑidjnoaiznjd"
|
||||
# r_error = requests.get(
|
||||
# f"{API_URL}/formsemestre/apo/{etape_apo_inexistante}",
|
||||
# headers=api_headers,
|
||||
# verify=CHECK_CERTIFICATE,
|
||||
# )
|
||||
# assert r_error.status_code == 404
|
||||
|
||||
|
||||
def test_bulletins(api_headers):
|
||||
"""
|
||||
Route: /formsemestre/<int:formsemestre_id>/bulletins
|
||||
"""
|
||||
formsemestre_id = 1
|
||||
r = requests.get(
|
||||
API_URL + "/formsemestre/1/bulletins",
|
||||
f"{API_URL}/formsemestre/{formsemestre_id}/bulletins",
|
||||
headers=api_headers,
|
||||
verify=CHECK_CERTIFICATE,
|
||||
)
|
||||
assert r.status_code == 200
|
||||
|
||||
bulletins = r.json()
|
||||
|
||||
assert isinstance(bulletins, list)
|
||||
for bul in bulletins:
|
||||
assert verify_fields(bul, FORMSEMESTRE_BULLETINS_FIELDS) is True
|
||||
assert isinstance(bul["version"], str)
|
||||
assert isinstance(bul["type"], str)
|
||||
assert isinstance(bul["date"], str)
|
||||
assert isinstance(bul["publie"], bool)
|
||||
assert isinstance(bul["etudiant"], dict)
|
||||
assert isinstance(bul["formation"], dict)
|
||||
assert isinstance(bul["formsemestre_id"], int)
|
||||
assert isinstance(bul["etat_inscription"], str)
|
||||
assert isinstance(bul["options"], dict)
|
||||
assert isinstance(bul["ressources"], dict)
|
||||
assert isinstance(bul["saes"], dict)
|
||||
assert isinstance(bul["ues"], dict)
|
||||
assert isinstance(bul["semestre"], dict)
|
||||
|
||||
formsemestre_id_bul = bul["formsemestre_id"]
|
||||
assert formsemestre_id == formsemestre_id_bul
|
||||
|
||||
etudiant = bul["etudiant"]
|
||||
assert verify_fields(etudiant, FORMSEMESTRE_BULLETINS_ETU_FIELDS) is True
|
||||
assert isinstance(etudiant["civilite"], str)
|
||||
assert isinstance(etudiant["code_ine"], str)
|
||||
assert isinstance(etudiant["code_nip"], str)
|
||||
assert isinstance(etudiant["date_naissance"], str)
|
||||
assert isinstance(etudiant["dept_id"], int)
|
||||
assert isinstance(etudiant["dept_acronym"], str)
|
||||
assert isinstance(etudiant["email"], str)
|
||||
assert isinstance(etudiant["emailperso"], str)
|
||||
assert isinstance(etudiant["etudid"], int)
|
||||
assert isinstance(etudiant["nom"], str)
|
||||
assert isinstance(etudiant["prenom"], str)
|
||||
assert isinstance(etudiant["nomprenom"], str)
|
||||
assert isinstance(etudiant["lieu_naissance"], str)
|
||||
assert isinstance(etudiant["dept_naissance"], str)
|
||||
assert isinstance(etudiant["nationalite"], str)
|
||||
assert isinstance(etudiant["boursier"], str)
|
||||
assert isinstance(etudiant["fiche_url"], str)
|
||||
assert isinstance(etudiant["photo_url"], str)
|
||||
assert isinstance(etudiant["id"], int)
|
||||
assert isinstance(etudiant["codepostaldomicile"], str)
|
||||
assert isinstance(etudiant["paysdomicile"], str)
|
||||
assert isinstance(etudiant["telephonemobile"], str)
|
||||
assert isinstance(etudiant["typeadresse"], str)
|
||||
assert isinstance(etudiant["domicile"], str)
|
||||
assert isinstance(etudiant["villedomicile"], str)
|
||||
assert isinstance(etudiant["telephone"], str)
|
||||
assert isinstance(etudiant["fax"], str)
|
||||
assert isinstance(etudiant["description"], str)
|
||||
|
||||
formation = bul["formation"]
|
||||
assert verify_fields(formation, FORMSEMESTRE_BULLETINS_FORMATION_FIELDS) is True
|
||||
assert isinstance(formation["id"], int)
|
||||
assert isinstance(formation["acronyme"], str)
|
||||
assert isinstance(formation["titre_officiel"], str)
|
||||
assert isinstance(formation["titre"], str)
|
||||
|
||||
options = bul["options"]
|
||||
assert verify_fields(options, FORMSEMESTRE_BULLETINS_OPT_FIELDS) is True
|
||||
assert isinstance(options["show_abs"], bool)
|
||||
assert isinstance(options["show_abs_modules"], bool)
|
||||
assert isinstance(options["show_ects"], bool)
|
||||
assert isinstance(options["show_codemodules"], bool)
|
||||
assert isinstance(options["show_matieres"], bool)
|
||||
assert isinstance(options["show_rangs"], bool)
|
||||
assert isinstance(options["show_ue_rangs"], bool)
|
||||
assert isinstance(options["show_mod_rangs"], bool)
|
||||
assert isinstance(options["show_moypromo"], bool)
|
||||
assert isinstance(options["show_minmax"], bool)
|
||||
assert isinstance(options["show_minmax_mod"], bool)
|
||||
assert isinstance(options["show_minmax_eval"], bool)
|
||||
assert isinstance(options["show_coef"], bool)
|
||||
assert isinstance(options["show_ue_cap_details"], bool)
|
||||
assert isinstance(options["show_ue_cap_current"], bool)
|
||||
assert isinstance(options["show_temporary"], bool)
|
||||
assert isinstance(options["temporary_txt"], str)
|
||||
assert isinstance(options["show_uevalid"], bool)
|
||||
assert isinstance(options["show_date_inscr"], bool)
|
||||
|
||||
bulletin_ressources = bul["ressources"]
|
||||
assert isinstance(bulletin_ressources, dict)
|
||||
|
||||
for ressource in bulletin_ressources.values():
|
||||
assert (
|
||||
verify_fields(
|
||||
ressource, BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_FIELDS
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(ressource, dict)
|
||||
assert isinstance(ressource["evaluations"], list)
|
||||
for evaluation in ressource["evaluations"]:
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["id"], int)
|
||||
assert evaluation["description"] is None or isinstance(
|
||||
evaluation["description"], str
|
||||
)
|
||||
assert evaluation["date"] is None or isinstance(evaluation["date"], str)
|
||||
assert isinstance(evaluation["heure_debut"], str)
|
||||
assert isinstance(evaluation["heure_fin"], str)
|
||||
assert isinstance(evaluation["coef"], str)
|
||||
assert isinstance(evaluation["poids"], dict)
|
||||
assert isinstance(evaluation["note"], dict)
|
||||
assert isinstance(evaluation["url"], str)
|
||||
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation["poids"],
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_POIDS_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["poids"]["RT1.1"], float)
|
||||
assert isinstance(evaluation["poids"]["RT2.1"], float)
|
||||
assert isinstance(evaluation["poids"]["RT3.1"], float)
|
||||
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation["note"],
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_NOTE_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["note"]["value"], str)
|
||||
assert isinstance(evaluation["note"]["min"], str)
|
||||
assert isinstance(evaluation["note"]["max"], str)
|
||||
assert isinstance(evaluation["note"]["moy"], str)
|
||||
|
||||
bulletin_saes = bul["saes"]
|
||||
assert isinstance(bulletin_saes, dict)
|
||||
|
||||
for sae in bulletin_saes.values():
|
||||
assert (
|
||||
verify_fields(sae, BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_FIELDS)
|
||||
is True
|
||||
)
|
||||
assert isinstance(sae, dict)
|
||||
assert isinstance(sae["evaluations"], list)
|
||||
for evaluation in sae["evaluations"]:
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation,
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["id"], int)
|
||||
assert evaluation["description"] is None or isinstance(
|
||||
evaluation["description"], str
|
||||
)
|
||||
assert evaluation["date"] is None or isinstance(evaluation["date"], str)
|
||||
assert isinstance(evaluation["heure_debut"], str)
|
||||
assert isinstance(evaluation["heure_fin"], str)
|
||||
assert isinstance(evaluation["coef"], str)
|
||||
assert isinstance(evaluation["poids"], dict)
|
||||
assert isinstance(evaluation["note"], dict)
|
||||
assert isinstance(evaluation["url"], str)
|
||||
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation["poids"],
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_POIDS_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["poids"]["RT1.1"], float)
|
||||
assert isinstance(evaluation["poids"]["RT2.1"], float)
|
||||
assert isinstance(evaluation["poids"]["RT3.1"], float)
|
||||
|
||||
assert (
|
||||
verify_fields(
|
||||
evaluation["note"],
|
||||
BULLETIN_RESSOURCES_ET_SAES_RESSOURCE_ET_SAE_EVALUATION_NOTE_FIELDS,
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(evaluation["note"]["value"], str)
|
||||
assert isinstance(evaluation["note"]["min"], str)
|
||||
assert isinstance(evaluation["note"]["max"], str)
|
||||
assert isinstance(evaluation["note"]["moy"], str)
|
||||
|
||||
bulletin_ues = bul["ues"]
|
||||
assert isinstance(bulletin_ues, dict)
|
||||
|
||||
for (key_ue, value_ue) in bulletin_ues.items():
|
||||
assert verify_fields(value_ue, BULLETIN_UES_UE_FIELDS) is True
|
||||
assert isinstance(value_ue["id"], int)
|
||||
assert isinstance(value_ue["titre"], str)
|
||||
assert isinstance(value_ue["numero"], int)
|
||||
assert isinstance(value_ue["type"], int)
|
||||
assert isinstance(value_ue["color"], str)
|
||||
assert value_ue["competence"] is None or isinstance(
|
||||
value_ue["competence"], str
|
||||
)
|
||||
assert isinstance(value_ue["moyenne"], dict)
|
||||
assert isinstance(value_ue["bonus"], str)
|
||||
assert isinstance(value_ue["malus"], str)
|
||||
assert value_ue["capitalise"] is None or isinstance(
|
||||
value_ue["capitalise"], str
|
||||
)
|
||||
assert isinstance(value_ue["ressources"], dict)
|
||||
assert isinstance(value_ue["saes"], dict)
|
||||
assert isinstance(value_ue["ECTS"], dict)
|
||||
|
||||
assert (
|
||||
verify_fields(value_ue["moyenne"], BULLETIN_UES_UE_MOYENNE_FIELDS)
|
||||
is True
|
||||
)
|
||||
assert isinstance(value_ue["moyenne"]["value"], str)
|
||||
assert isinstance(value_ue["moyenne"]["min"], str)
|
||||
assert isinstance(value_ue["moyenne"]["max"], str)
|
||||
assert isinstance(value_ue["moyenne"]["moy"], str)
|
||||
assert isinstance(value_ue["moyenne"]["rang"], str)
|
||||
assert isinstance(value_ue["moyenne"]["total"], int)
|
||||
|
||||
for ressource in value_ue["ressources"].values():
|
||||
assert (
|
||||
verify_fields(
|
||||
ressource, BULLETIN_UES_UE_RESSOURCES_RESSOURCE_FIELDS
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(ressource["id"], int)
|
||||
assert isinstance(ressource["coef"], float)
|
||||
assert isinstance(ressource["moyenne"], str)
|
||||
|
||||
for sae in value_ue["saes"].values():
|
||||
assert verify_fields(sae, BULLETIN_UES_UE_SAES_SAE_FIELDS) is True
|
||||
assert isinstance(sae["id"], int)
|
||||
assert isinstance(sae["coef"], float)
|
||||
assert isinstance(sae["moyenne"], str)
|
||||
|
||||
assert verify_fields(value_ue["ECTS"], BULLETIN_UES_UE_ECTS_FIELDS) is True
|
||||
assert isinstance(value_ue["ECTS"]["acquis"], float)
|
||||
assert isinstance(value_ue["ECTS"]["total"], float)
|
||||
|
||||
bulletin_semestre = bul["semestre"]
|
||||
assert verify_fields(bulletin_semestre, BULLETIN_SEMESTRE_FIELDS) is True
|
||||
assert isinstance(bulletin_semestre["etapes"], list)
|
||||
assert isinstance(bulletin_semestre["date_debut"], str)
|
||||
assert isinstance(bulletin_semestre["date_fin"], str)
|
||||
assert isinstance(bulletin_semestre["annee_universitaire"], str)
|
||||
assert isinstance(bulletin_semestre["numero"], int)
|
||||
assert isinstance(bulletin_semestre["inscription"], str)
|
||||
assert isinstance(bulletin_semestre["groupes"], list)
|
||||
assert isinstance(bulletin_semestre["absences"], dict)
|
||||
assert isinstance(bulletin_semestre["ECTS"], dict)
|
||||
assert isinstance(bulletin_semestre["notes"], dict)
|
||||
assert isinstance(bulletin_semestre["rang"], dict)
|
||||
|
||||
assert (
|
||||
verify_fields(
|
||||
bulletin_semestre["absences"], BULLETIN_SEMESTRE_ABSENCES_FIELDS
|
||||
)
|
||||
is True
|
||||
)
|
||||
assert isinstance(bulletin_semestre["absences"]["injustifie"], int)
|
||||
assert isinstance(bulletin_semestre["absences"]["total"], int)
|
||||
|
||||
assert (
|
||||
verify_fields(bulletin_semestre["ECTS"], BULLETIN_SEMESTRE_ECTS_FIELDS)
|
||||
is True
|
||||
)
|
||||
assert isinstance(bulletin_semestre["ECTS"]["acquis"], int)
|
||||
assert isinstance(bulletin_semestre["ECTS"]["total"], float)
|
||||
|
||||
assert (
|
||||
verify_fields(bulletin_semestre["notes"], BULLETIN_SEMESTRE_NOTES_FIELDS)
|
||||
is True
|
||||
)
|
||||
assert isinstance(bulletin_semestre["notes"]["value"], str)
|
||||
assert isinstance(bulletin_semestre["notes"]["min"], str)
|
||||
assert isinstance(bulletin_semestre["notes"]["max"], str)
|
||||
assert isinstance(bulletin_semestre["notes"]["moy"], str)
|
||||
|
||||
assert (
|
||||
verify_fields(bulletin_semestre["rang"], BULLETIN_SEMESTRE_RANG_FIELDS)
|
||||
is True
|
||||
)
|
||||
assert isinstance(bulletin_semestre["rang"]["value"], str)
|
||||
assert isinstance(bulletin_semestre["rang"]["total"], int)
|
||||
|
||||
|
||||
# # jury
|
||||
# def test_jury():
|
||||
|
@ -641,3 +641,79 @@ PARTITIONS_GROUPS_ETU_FIELDS = {
|
||||
"ne",
|
||||
"email_default",
|
||||
}
|
||||
|
||||
FORMSEMESTRE_BULLETINS_FIELDS = {
|
||||
"version",
|
||||
"type",
|
||||
"date",
|
||||
"publie",
|
||||
"etudiant",
|
||||
"formation",
|
||||
"formsemestre_id",
|
||||
"etat_inscription",
|
||||
"options",
|
||||
"ressources",
|
||||
"saes",
|
||||
"ues",
|
||||
"semestre",
|
||||
}
|
||||
|
||||
FORMSEMESTRE_BULLETINS_ETU_FIELDS = {
|
||||
"civilite",
|
||||
"code_ine",
|
||||
"code_nip",
|
||||
"date_naissance",
|
||||
"dept_id",
|
||||
"dept_acronym",
|
||||
"email",
|
||||
"emailperso",
|
||||
"etudid",
|
||||
"nom",
|
||||
"prenom",
|
||||
"nomprenom",
|
||||
"lieu_naissance",
|
||||
"dept_naissance",
|
||||
"nationalite",
|
||||
"boursier",
|
||||
"fiche_url",
|
||||
"photo_url",
|
||||
"id",
|
||||
"codepostaldomicile",
|
||||
"paysdomicile",
|
||||
"telephonemobile",
|
||||
"typeadresse",
|
||||
"domicile",
|
||||
"villedomicile",
|
||||
"telephone",
|
||||
"fax",
|
||||
"description",
|
||||
}
|
||||
|
||||
FORMSEMESTRE_BULLETINS_FORMATION_FIELDS = {
|
||||
"id",
|
||||
"acronyme",
|
||||
"titre_officiel",
|
||||
"titre",
|
||||
}
|
||||
|
||||
FORMSEMESTRE_BULLETINS_OPT_FIELDS = {
|
||||
"show_abs",
|
||||
"show_abs_modules",
|
||||
"show_ects",
|
||||
"show_codemodules",
|
||||
"show_matieres",
|
||||
"show_rangs",
|
||||
"show_ue_rangs",
|
||||
"show_mod_rangs",
|
||||
"show_moypromo",
|
||||
"show_minmax",
|
||||
"show_minmax_mod",
|
||||
"show_minmax_eval",
|
||||
"show_coef",
|
||||
"show_ue_cap_details",
|
||||
"show_ue_cap_current",
|
||||
"show_temporary",
|
||||
"temporary_txt",
|
||||
"show_uevalid",
|
||||
"show_date_inscr",
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user