# -*- 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_formations.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 # formations def test_formations_ids(api_headers): """ Route: /formations_ids """ r = requests.get( API_URL + "/formations_ids", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 formations_ids = r.json() # Une liste non vide d'entiers assert isinstance(formations_ids, list) assert len(formations_ids) > 0 assert all(isinstance(x, int) for x in formations_ids) # formations_by_id def test_formations_by_id(api_headers): """ Route: /formations/ """ fields = [ "id", "acronyme", "titre_officiel", "formation_code", "code_specialite", "dept_id", "titre", "version", "type_parcours", "referentiel_competence_id", "formation_id", ] r = requests.get( API_URL + "/formations/1", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 formation = r.json() fields_ok = verify_fields(formation, fields) assert fields_ok is True # TODO tester le contenu de certains champs def test_formation_export(api_headers): """ Route: /formations/formation_export/ """ fields = [ "id", "acronyme", "titre_officiel", "formation_code", "code_specialite", "dept_id", "titre", "version", "type_parcours", "referentiel_competence_id", "formation_id", "ue", ] r = requests.get( API_URL + "/formations/formation_export/1", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 export_formation = r.json() fields_ok = verify_fields(export_formation, fields) assert fields_ok is True # TODO tester le contenu de certains champs # TODO # def test_formsemestre_apo(api_headers): # r = requests.get( # API_URL + "/formations/apo/", # headers=api_headers, # verify=CHECK_CERTIFICATE, # ) # assert r.status_code == 200 def test_moduleimpl(api_headers): """ Route: /formations/moduleimpl/ """ fields = [ "id", "formsemestre_id", "computation_expr", "module_id", "responsable_id", "moduleimpl_id", "ens", "module", ] r = requests.get( API_URL + "/formations/moduleimpl/1", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 moduleimpl = r.json() fields_ok = verify_fields(moduleimpl, fields) assert fields_ok is True # TODO tester le contenu de certains champs def test_moduleimpls_sem(api_headers): """ Route: /formations/moduleimpl/formsemestre//list """ fields = [ "id", "formsemestre_id", "computation_expr", "module_id", "responsable_id", "moduleimpl_id", "ens", "module", "moduleimpl_id", "ens", ] r = requests.get( API_URL + "/formations/moduleimpl/formsemestre/1/list", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 moduleimpls = r.json() moduleimpl = moduleimpls[0] fields_ok = verify_fields(moduleimpl, fields) assert len(moduleimpls) == 21 # XXX HARDCODED ! assert fields_ok is True def test_referentiel_competences(api_headers): """ Route: "/formations//referentiel_competences", """ r = requests.get( API_URL + "/formations/1/referentiel_competences", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 # XXX A compléter