From 281539dd3b6ffc55e397546668440697d0450060 Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Wed, 15 Jun 2022 16:01:48 +0200 Subject: [PATCH] ajout tests unitaires absences --- tests/api/test_api_absences.py | 156 ++++++++++++++++++++++++++++++--- 1 file changed, 143 insertions(+), 13 deletions(-) diff --git a/tests/api/test_api_absences.py b/tests/api/test_api_absences.py index 696ca043..638b58fe 100644 --- a/tests/api/test_api_absences.py +++ b/tests/api/test_api_absences.py @@ -21,6 +21,12 @@ import requests from tests.api.setup_test_api import API_URL, CHECK_CERTIFICATE, api_headers # Etudiant pour les tests +from tests.api.tools_test_api import ( + verify_fields, + ABSENCES_FIELDS, + ABSENCES_GROUP_ETAT_FIELDS, +) + ETUDID = 1 @@ -29,10 +35,8 @@ def test_absences(api_headers): """ Test 'absences' - Routes : + Route : - /absences/etudid/ - - /absences/nip/ - - /absences/ine/ """ r = requests.get( f"{API_URL}/absences/etudid/{ETUDID}", @@ -40,6 +44,20 @@ def test_absences(api_headers): verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 + absences = r.json() + + assert isinstance(absences, list) + for abs in absences: + assert verify_fields(abs, ABSENCES_FIELDS) is True + assert isinstance(abs["jour"], str) + assert isinstance(abs["matin"], bool) + assert isinstance(abs["estabs"], bool) + assert isinstance(abs["estjust"], bool) + assert isinstance(abs["description"], str) + assert isinstance(abs["begin"], str) + assert isinstance(abs["end"], str) + + assert abs["begin"] < abs["end"] # absences_justify @@ -47,32 +65,144 @@ def test_absences_justify(api_headers): """ Test 'absences_just' - Routes : + Route : - /absences/etudid//just - - /absences/nip//just - - /absences/ine//just """ r = requests.get( - API_URL + f"/absences/etudid/{ETUDID}/just", + f"{API_URL}/absences/etudid/{ETUDID}/just", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 - # TODO vérifier résultat + absences = r.json() + + assert isinstance(absences, list) + for abs in absences: + assert verify_fields(abs, ABSENCES_FIELDS) is True + assert isinstance(abs["jour"], str) + assert isinstance(abs["matin"], bool) + assert isinstance(abs["estabs"], bool) + assert isinstance(abs["estjust"], bool) + assert isinstance(abs["description"], str) + assert isinstance(abs["begin"], str) + assert isinstance(abs["end"], str) + + assert abs["begin"] < abs["end"] + + +def test_abs_groupe_etat(api_headers): + """ + Test 'abs_groupe_etat' + + Routes : + - /absences/abs_group_etat/ + - /absences/abs_group_etat/group_id//date_debut//date_fin/ + """ + group_id = 1 + r = requests.get( + f"{API_URL}/absences/abs_group_etat/{group_id}", + headers=api_headers, + verify=CHECK_CERTIFICATE, + ) + assert r.status_code == 200 + + list_absences = r.json() + + assert isinstance(list_absences, list) + list_id_etu = [] + for etu in list_absences: + list_id_etu.append(etu["etudid"]) + assert verify_fields(etu, ABSENCES_GROUP_ETAT_FIELDS) is True + assert isinstance(etu["etudid"], int) + assert isinstance(etu["list_abs"], list) + + list_abs = etu["list_abs"] + for abs in list_abs: + assert verify_fields(abs, ABSENCES_FIELDS) is True + assert isinstance(abs["jour"], str) + assert isinstance(abs["matin"], bool) + assert isinstance(abs["estabs"], bool) + assert isinstance(abs["estjust"], bool) + assert isinstance(abs["description"], str) + assert isinstance(abs["begin"], str) + assert isinstance(abs["end"], str) + + assert abs["begin"] < abs["end"] + + all_unique = True + for id in list_id_etu: + if list_id_etu.count(id) > 1: + all_unique = False + assert all_unique is True + + date_debut = "Fri, 15 Apr 2021 00:00:00 GMT" + date_fin = "Fri, 18 Apr 2022 00:00:00 GMT" + + r1 = requests.get( + f"{API_URL}/absences/abs_group_etat/group_id/{group_id}/date_debut/{date_debut}/date_fin/{date_fin}", + headers=api_headers, + verify=CHECK_CERTIFICATE, + ) + assert r1.status_code == 200 + + list_absences1 = r.json() + + assert isinstance(list_absences1, list) + list_id_etu1 = [] + for etu in list_absences1: + list_id_etu1.append(etu["etudid"]) + assert verify_fields(etu, ABSENCES_GROUP_ETAT_FIELDS) is True + assert isinstance(etu["etudid"], int) + assert isinstance(etu["list_abs"], list) + + list_abs1 = etu["list_abs"] + for abs in list_abs1: + assert verify_fields(abs, ABSENCES_FIELDS) is True + assert isinstance(abs["jour"], str) + assert isinstance(abs["matin"], bool) + assert isinstance(abs["estabs"], bool) + assert isinstance(abs["estjust"], bool) + assert isinstance(abs["description"], str) + assert isinstance(abs["begin"], str) + assert isinstance(abs["end"], str) + + assert abs["begin"] < abs["end"] + + all_unique1 = True + for id in list_id_etu1: + if list_id_etu1.count(id) > 1: + all_unique1 = False + assert all_unique1 is True # XXX TODO -# def test_abs_groupe_etat(api_headers): +# def reset_etud_abs(api_headers): # """ # Test 'abs_groupe_etat' # # Routes : -# - /absences/abs_group_etat/ -# - /absences/abs_group_etat/group_id//date_debut//date_fin/ +# - /absences/etudid//list_abs//reset_etud_abs +# - /absences/etudid//list_abs//reset_etud_abs/only_not_just +# - /absences/etudid//list_abs//reset_etud_abs/only_just # """ +# list_abs = [] # r = requests.get( -# API_URL + "/absences/abs_group_etat/group_id//date_debut//" -# "date_fin/", +# f"{API_URL}/absences/etudid/{ETUDID}/list_abs/{list_abs}/reset_etud_abs", +# headers=api_headers, +# verify=CHECK_CERTIFICATE, +# ) +# assert r.status_code == 200 +# +# r_only_not_just = requests.get( +# f"{API_URL}/absences/etudid/{ETUDID}/list_abs/{list_abs}/reset_etud_abs/only_not_just", +# headers=api_headers, +# verify=CHECK_CERTIFICATE, +# ) +# assert r.status_code == 200 +# +# +# r_only_just = requests.get( +# f"{API_URL}/absences/etudid/{ETUDID}/list_abs/{list_abs}/reset_etud_abs/only_just", # headers=api_headers, # verify=CHECK_CERTIFICATE, # )