# -*- 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_partitions.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, PARTITIONS_FIELDS, PARTITIONS_GROUPS_ETU_FIELDS, ) def test_partition(api_headers): """ Test 'partition' Route : - /partitions/ """ partition_id = 1 r = requests.get( f"{API_URL}/partitions/{partition_id}", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 partitions = r.json() assert len(partitions) == 1 assert isinstance(partitions, list) partition = partitions[0] assert isinstance(partition, dict) assert verify_fields(partition, PARTITIONS_FIELDS) is True assert partition_id == partition["partition_id"] assert isinstance(partition["partition_id"], int) assert isinstance(partition["id"], int) assert isinstance(partition["formsemestre_id"], int) assert partition["partition_name"] is None or isinstance( partition["partition_name"], str ) assert isinstance(partition["numero"], int) assert isinstance(partition["bul_show_rank"], bool) assert isinstance(partition["show_in_lists"], bool) def test_etud_in_group(api_headers): """ Test 'etud_in_group' Routes : - /partition/group/ - /partition/group//etat/ """ group_id = 1 r = requests.get( f"{API_URL}/partition/group/{group_id}", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r.status_code == 200 assert isinstance(r.json(), list) for etu in r.json(): assert verify_fields(etu, PARTITIONS_GROUPS_ETU_FIELDS) assert isinstance(etu["etudid"], int) assert isinstance(etu["id"], int) assert isinstance(etu["dept_id"], int) assert isinstance(etu["nom"], str) assert isinstance(etu["prenom"], str) assert isinstance(etu["nom_usuel"], str) assert isinstance(etu["civilite"], str) assert etu["date_naissance"] is None or isinstance(etu["date_naissance"], str) assert etu["lieu_naissance"] is None or isinstance(etu["lieu_naissance"], str) assert etu["dept_naissance"] is None or isinstance(etu["dept_naissance"], str) assert etu["nationalite"] is None or isinstance(etu["nationalite"], str) assert etu["statut"] is None or isinstance(etu["statut"], str) assert etu["boursier"] is None or isinstance(etu["boursier"], bool) assert etu["photo_filename"] is None or isinstance(etu["photo_filename"], str) assert isinstance(etu["code_nip"], str) assert isinstance(etu["code_ine"], str) assert etu["scodoc7_id"] is None or isinstance(etu["scodoc7_id"], int) assert isinstance(etu["email"], str) assert etu["emailperso"] is None or isinstance(etu["emailperso"], str) assert etu["domicile"] is None or isinstance(etu["domicile"], str) assert etu["codepostaldomicile"] is None or isinstance( etu["codepostaldomicile"], str ) assert etu["villedomicile"] is None or isinstance(etu["villedomicile"], str) assert etu["paysdomicile"] is None or isinstance(etu["paysdomicile"], str) assert etu["telephone"] is None or isinstance(etu["telephone"], str) assert etu["telephonemobile"] is None or isinstance(etu["telephonemobile"], str) assert etu["fax"] is None or isinstance(etu["fax"], str) assert isinstance(etu["typeadresse"], str) assert etu["description"] is None or isinstance(etu["description"], int) assert isinstance(etu["group_id"], int) assert isinstance(etu["etat"], str) assert isinstance(etu["civilite_str"], str) assert isinstance(etu["nom_disp"], str) assert isinstance(etu["nomprenom"], str) assert isinstance(etu["ne"], str) assert isinstance(etu["email_default"], str) etat = "I" r_etat = requests.get( f"{API_URL}/partition/group/{group_id}/etat/{etat}", headers=api_headers, verify=CHECK_CERTIFICATE, ) assert r_etat.status_code == 200 assert isinstance(r_etat.json(), list) for etu in r_etat.json(): assert verify_fields(etu, PARTITIONS_GROUPS_ETU_FIELDS) assert isinstance(etu["etudid"], int) assert isinstance(etu["id"], int) assert isinstance(etu["dept_id"], int) assert isinstance(etu["nom"], str) assert isinstance(etu["prenom"], str) assert isinstance(etu["nom_usuel"], str) assert isinstance(etu["civilite"], str) assert etu["date_naissance"] is None or isinstance(etu["date_naissance"], str) assert etu["lieu_naissance"] is None or isinstance(etu["lieu_naissance"], str) assert etu["dept_naissance"] is None or isinstance(etu["dept_naissance"], str) assert etu["nationalite"] is None or isinstance(etu["nationalite"], str) assert etu["statut"] is None or isinstance(etu["statut"], str) assert etu["boursier"] is None or isinstance(etu["boursier"], bool) assert etu["photo_filename"] is None or isinstance(etu["photo_filename"], str) assert isinstance(etu["code_nip"], str) assert isinstance(etu["code_ine"], str) assert etu["scodoc7_id"] is None or isinstance(etu["scodoc7_id"], int) assert isinstance(etu["email"], str) assert etu["emailperso"] is None or isinstance(etu["emailperso"], str) assert etu["domicile"] is None or isinstance(etu["domicile"], str) assert etu["codepostaldomicile"] is None or isinstance( etu["codepostaldomicile"], str ) assert etu["villedomicile"] is None or isinstance(etu["villedomicile"], str) assert etu["paysdomicile"] is None or isinstance(etu["paysdomicile"], str) assert etu["telephone"] is None or isinstance(etu["telephone"], str) assert etu["telephonemobile"] is None or isinstance(etu["telephonemobile"], str) assert etu["fax"] is None or isinstance(etu["fax"], str) assert isinstance(etu["typeadresse"], str) assert etu["description"] is None or isinstance(etu["description"], int) assert isinstance(etu["group_id"], int) assert isinstance(etu["etat"], str) assert isinstance(etu["civilite_str"], str) assert isinstance(etu["nom_disp"], str) assert isinstance(etu["nomprenom"], str) assert isinstance(etu["ne"], str) assert isinstance(etu["email_default"], str) assert etat == etu["etat"] # # set_groups # def test_set_groups(api_headers): # """ # Test 'set_groups' # # Routes : # - /partitions/set_groups/partition//groups//delete/" # "/create/ # """ # r = requests.get( # SCODOC_URL # + "/partitions/set_groups/partition//groups/" # "/delete//create/", # headers=api_headers, # verify=CHECK_CERTIFICATE, # ) # assert r.status_code == 200