API: formsemestre_resultat avec nouvelle table + test unitaire

This commit is contained in:
Emmanuel Viennet 2023-02-04 02:17:30 +01:00
parent 0f1adf2c0d
commit 23c035e252
3 changed files with 49 additions and 43 deletions

View File

@ -477,14 +477,9 @@ def formsemestre_resultat(formsemestre_id: int):
formsemestre: FormSemestre = query.first_or_404(formsemestre_id) formsemestre: FormSemestre = query.first_or_404(formsemestre_id)
app.set_sco_dept(formsemestre.departement.acronym) app.set_sco_dept(formsemestre.departement.acronym)
res: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre) res: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
table = TableRecap() table = TableRecap(
table = res.get_table_recap( res, convert_values=convert_values, include_evaluations=False, mode_jury=False
convert_values=convert_values,
include_evaluations=False,
mode_jury=False,
allow_html=False,
) )
raise NotImplementedError() # A COMPLETER XXX
# Supprime les champs inutiles (mise en forme) # Supprime les champs inutiles (mise en forme)
rows = table.to_list() rows = table.to_list()
# Ajoute le groupe de chaque partition: # Ajoute le groupe de chaque partition:

View File

@ -16,7 +16,7 @@ Utilisation :
Lancer : Lancer :
pytest tests/api/test_api_formsemestre.py pytest tests/api/test_api_formsemestre.py
""" """
import json
import requests import requests
from tests.api.setup_test_api import ( from tests.api.setup_test_api import (
@ -695,10 +695,21 @@ def test_formsemestre_resultat(api_headers):
verify=CHECK_CERTIFICATE, verify=CHECK_CERTIFICATE,
) )
assert r.status_code == 200 assert r.status_code == 200
json_response = r.text.translate({32: None, 9: None}).strip() res = r.json()
with open( with open(
"tests/ressources/results/formsemestre_resultat.json", encoding="utf8" "tests/ressources/results/formsemestre_resultat.json", encoding="utf8"
) as f: ) as f:
json_reference = f.read().translate({32: None, 9: None}).strip() json_reference = f.read()
ref = json.loads(json_reference)
_compare_formsemestre_resultat(res, ref)
assert json_response == json_reference
def _compare_formsemestre_resultat(res: list[dict], ref: list[dict]):
"""compare les deux dict de résultats de formsemestre_resultat"""
assert len(res) == len(ref) # même nb d'étudiants
res.sort(key=lambda e: e["etudid"])
ref.sort(key=lambda e: e["etudid"])
for res_d, ref_d in zip(res, ref):
assert sorted(res_d.keys()) == sorted(ref_d.keys())
for k in res_d:
assert res_d[k] == ref_d[k]

View File

@ -7,6 +7,8 @@
"nom_disp": "FLEURY", "nom_disp": "FLEURY",
"prenom": "MADELEINE", "prenom": "MADELEINE",
"nom_short": "FLEURY Ma.", "nom_short": "FLEURY Ma.",
"code_cursus": "S1",
"ues_validables": "3/3",
"moy_gen": "14.36", "moy_gen": "14.36",
"moy_ue_1": "14.94", "moy_ue_1": "14.94",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -45,8 +47,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "17.83", "moy_sae_14_3": "17.83",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "3/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -63,6 +63,8 @@
"nom_disp": "SAUNIER", "nom_disp": "SAUNIER",
"prenom": "JACQUES", "prenom": "JACQUES",
"nom_short": "SAUNIER Ja.", "nom_short": "SAUNIER Ja.",
"code_cursus": "S1",
"ues_validables": "3/3",
"moy_gen": "12.67", "moy_gen": "12.67",
"moy_ue_1": "13.51", "moy_ue_1": "13.51",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -101,8 +103,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "10.74", "moy_sae_14_3": "10.74",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "3/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -119,6 +119,8 @@
"nom_disp": "LENFANT", "nom_disp": "LENFANT",
"prenom": "MAXIME", "prenom": "MAXIME",
"nom_short": "LENFANT Ma.", "nom_short": "LENFANT Ma.",
"code_cursus": "S1",
"ues_validables": "2/3",
"moy_gen": "12.02", "moy_gen": "12.02",
"moy_ue_1": "14.34", "moy_ue_1": "14.34",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -157,8 +159,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "05.70", "moy_sae_14_3": "05.70",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "2/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -175,6 +175,8 @@
"nom_disp": "CUNY", "nom_disp": "CUNY",
"prenom": "CAMILLE", "prenom": "CAMILLE",
"nom_short": "CUNY Ca.", "nom_short": "CUNY Ca.",
"code_cursus": "S1",
"ues_validables": "2/3",
"moy_gen": "11.88", "moy_gen": "11.88",
"moy_ue_1": "07.09", "moy_ue_1": "07.09",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -213,8 +215,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "10.52", "moy_sae_14_3": "10.52",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "2/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -231,6 +231,8 @@
"nom_disp": "GAUTIER", "nom_disp": "GAUTIER",
"prenom": "G\u00c9RARD", "prenom": "G\u00c9RARD",
"nom_short": "GAUTIER G\u00e9.", "nom_short": "GAUTIER G\u00e9.",
"code_cursus": "S1",
"ues_validables": "1/3",
"moy_gen": "11.08", "moy_gen": "11.08",
"moy_ue_1": "13.52", "moy_ue_1": "13.52",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -269,8 +271,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "10.67", "moy_sae_14_3": "10.67",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "1/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -287,6 +287,8 @@
"nom_disp": "MOUTON", "nom_disp": "MOUTON",
"prenom": "CLAUDE", "prenom": "CLAUDE",
"nom_short": "MOUTON Cl.", "nom_short": "MOUTON Cl.",
"code_cursus": "S1",
"ues_validables": "1/3",
"moy_gen": "10.52", "moy_gen": "10.52",
"moy_ue_1": "08.93", "moy_ue_1": "08.93",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -325,8 +327,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "11.09", "moy_sae_14_3": "11.09",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "1/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -343,6 +343,8 @@
"nom_disp": "VILLENEUVE", "nom_disp": "VILLENEUVE",
"prenom": "FRAN\u00c7OISE", "prenom": "FRAN\u00c7OISE",
"nom_short": "VILLENEUVE Fr.", "nom_short": "VILLENEUVE Fr.",
"code_cursus": "S1",
"ues_validables": "1/3",
"moy_gen": "10.42", "moy_gen": "10.42",
"moy_ue_1": "09.27", "moy_ue_1": "09.27",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -381,8 +383,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "13.21", "moy_sae_14_3": "13.21",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "1/3",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -399,6 +399,8 @@
"nom_disp": "BOUTET", "nom_disp": "BOUTET",
"prenom": "MARGUERITE", "prenom": "MARGUERITE",
"nom_short": "BOUTET Ma.", "nom_short": "BOUTET Ma.",
"code_cursus": "S1",
"ues_validables": "2/3",
"moy_gen": "10.26", "moy_gen": "10.26",
"moy_ue_1": "12.57", "moy_ue_1": "12.57",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -437,8 +439,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "15.82", "moy_sae_14_3": "15.82",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "2/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -455,6 +455,8 @@
"nom_disp": "R\u00c9GNIER", "nom_disp": "R\u00c9GNIER",
"prenom": "PATRICK", "prenom": "PATRICK",
"nom_short": "R\u00c9GNIER Pa.", "nom_short": "R\u00c9GNIER Pa.",
"code_cursus": "S1",
"ues_validables": "2/3",
"moy_gen": "10.04", "moy_gen": "10.04",
"moy_ue_1": "13.06", "moy_ue_1": "13.06",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -493,8 +495,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "01.55", "moy_sae_14_3": "01.55",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "2/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -511,6 +511,8 @@
"nom_disp": "ROLLIN", "nom_disp": "ROLLIN",
"prenom": "DERC'HEN", "prenom": "DERC'HEN",
"nom_short": "ROLLIN De.", "nom_short": "ROLLIN De.",
"code_cursus": "S1",
"ues_validables": "2/3",
"moy_gen": "09.59", "moy_gen": "09.59",
"moy_ue_1": "11.92", "moy_ue_1": "11.92",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -549,8 +551,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "00.94", "moy_sae_14_3": "00.94",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "2/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -567,6 +567,8 @@
"nom_disp": "ESTEVE", "nom_disp": "ESTEVE",
"prenom": "ALIX", "prenom": "ALIX",
"nom_short": "ESTEVE Al.", "nom_short": "ESTEVE Al.",
"code_cursus": "S1",
"ues_validables": "1/3",
"moy_gen": "08.59", "moy_gen": "08.59",
"moy_ue_1": "07.24", "moy_ue_1": "07.24",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -605,8 +607,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "05.17", "moy_sae_14_3": "05.17",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "1/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -623,6 +623,8 @@
"nom_disp": "SCHMITT", "nom_disp": "SCHMITT",
"prenom": "EMMANUEL", "prenom": "EMMANUEL",
"nom_short": "SCHMITT Em.", "nom_short": "SCHMITT Em.",
"code_cursus": "S1",
"ues_validables": "1/3",
"moy_gen": "08.31", "moy_gen": "08.31",
"moy_ue_1": "07.70", "moy_ue_1": "07.70",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -661,8 +663,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "02.59", "moy_sae_14_3": "02.59",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "1/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -679,6 +679,8 @@
"nom_disp": "DIOT", "nom_disp": "DIOT",
"prenom": "CAMILLE", "prenom": "CAMILLE",
"nom_short": "DIOT Ca.", "nom_short": "DIOT Ca.",
"code_cursus": "S1",
"ues_validables": "0/3",
"moy_gen": "07.24", "moy_gen": "07.24",
"moy_ue_1": "06.48", "moy_ue_1": "06.48",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -717,8 +719,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "03.49", "moy_sae_14_3": "03.49",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "0/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -735,6 +735,8 @@
"nom_disp": "GILLES", "nom_disp": "GILLES",
"prenom": "MAXIME", "prenom": "MAXIME",
"nom_short": "GILLES Ma.", "nom_short": "GILLES Ma.",
"code_cursus": "S1",
"ues_validables": "0/3",
"moy_gen": "07.21", "moy_gen": "07.21",
"moy_ue_1": "06.86", "moy_ue_1": "06.86",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -773,8 +775,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "03.32", "moy_sae_14_3": "03.32",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "0/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -791,6 +791,8 @@
"nom_disp": "NAUDIN", "nom_disp": "NAUDIN",
"prenom": "SIMONE", "prenom": "SIMONE",
"nom_short": "NAUDIN Si.", "nom_short": "NAUDIN Si.",
"code_cursus": "S1",
"ues_validables": "0/3",
"moy_gen": "07.02", "moy_gen": "07.02",
"moy_ue_1": "06.82", "moy_ue_1": "06.82",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -829,8 +831,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "02.10", "moy_sae_14_3": "02.10",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "0/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
@ -847,6 +847,8 @@
"nom_disp": "COSTA", "nom_disp": "COSTA",
"prenom": "SACHA", "prenom": "SACHA",
"nom_short": "COSTA Sa.", "nom_short": "COSTA Sa.",
"code_cursus": "S1",
"ues_validables": "0/3",
"moy_gen": "05.31", "moy_gen": "05.31",
"moy_ue_1": "03.73", "moy_ue_1": "03.73",
"moy_res_1_1": "~", "moy_res_1_1": "~",
@ -885,8 +887,6 @@
"moy_res_21_3": "~", "moy_res_21_3": "~",
"moy_sae_14_3": "07.17", "moy_sae_14_3": "07.17",
"moy_sae_15_3": "~", "moy_sae_15_3": "~",
"ues_validables": "0/3 ⚠️",
"code_cursus": "S1",
"bac": "", "bac": "",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",