# -*- coding: utf-8 -*- """Test Logos Utilisation : créer les variables d'environnement: (indiquer les valeurs pour le serveur ScoDoc que vous voulez interroger) export SCODOC_URL="https://scodoc.xxx.net/" export SCODOC_USER="xxx" export SCODOC_PASSWD="xxx" export CHECK_CERTIFICATE=0 # ou 1 si serveur de production avec certif SSL valide (on peut aussi placer ces valeurs dans un fichier .env du répertoire tests/api). Lancer : pytest tests/api/test_api_evaluations.py """ import requests from tests.api.setup_test_api import API_URL, CHECK_CERTIFICATE, api_headers from tests.api.tools_test_api import ( verify_fields, EVALUATIONS_FIELDS, EVALUATION_FIELDS, ) def test_evaluations(api_headers): """ Test 'evaluations' Route : - /evaluations/ """ moduleimpl_id = 1 r = requests.get( f"{API_URL}/evaluations/{moduleimpl_id}", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 list_eval = r.json() assert isinstance(list_eval, list) for eval in list_eval: assert verify_fields(eval, EVALUATIONS_FIELDS) is True assert isinstance(eval["id"], int) assert isinstance(eval["jour"], str) assert isinstance(eval["heure_fin"], str) assert isinstance(eval["note_max"], float) assert isinstance(eval["visibulletin"], bool) assert isinstance(eval["evaluation_type"], int) assert isinstance(eval["moduleimpl_id"], int) assert isinstance(eval["heure_debut"], str) assert eval["description"] is None or isinstance(eval["description"], str) assert isinstance(eval["coefficient"], float) assert isinstance(eval["publish_incomplete"], bool) assert isinstance(eval["numero"], int) assert isinstance(eval["evaluation_id"], int) assert eval["date_debut"] is None or isinstance(eval["date_debut"], str) assert eval["date_fin"] is None or isinstance(eval["date_fin"], str) assert isinstance(eval["poids"], dict) assert eval["jouriso"] is None or isinstance(eval["jouriso"], str) assert isinstance(eval["duree"], str) assert isinstance(eval["descrheure"], str) assert isinstance(eval["matin"], int) assert isinstance(eval["apresmidi"], int) assert eval["moduleimpl_id"] == moduleimpl_id def test_evaluation_notes(api_headers): # XXX TODO changer la boucle pour parcourir le dict sans les indices """ Test 'evaluation_notes' Route : - /evaluation/eval_notes/ """ eval_id = 1 r = requests.get( f"{API_URL}/evaluation/eval_notes/{eval_id}", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 eval_notes = r.json() for i in range(1, len(eval_notes)): assert verify_fields(eval_notes[f"{i}"], EVALUATION_FIELDS) assert isinstance(eval_notes[f"{i}"]["id"], int) assert isinstance(eval_notes[f"{i}"]["etudid"], int) assert isinstance(eval_notes[f"{i}"]["evaluation_id"], int) assert isinstance(eval_notes[f"{i}"]["value"], float) assert isinstance(eval_notes[f"{i}"]["comment"], str) assert isinstance(eval_notes[f"{i}"]["date"], str) assert isinstance(eval_notes[f"{i}"]["uid"], int) assert eval_id == eval_notes[f"{i}"]["evaluation_id"]