MonScoDocEssai/tests/api/essai_tous_semestres.py

60 lines
1.3 KiB
Python
Raw Normal View History

2023-04-13 08:42:53 +02:00
#!/usr/bin/env python3
# -*- mode: python -*-
# -*- coding: utf-8 -*-
"""Exemple utilisation API ScoDoc 9 avec jeton obtenu par basic authentication
Usage:
cd /opt/scodoc/tests/api
python -i essai_tous_semestres.py
Ce script va demander les semestres suivi par chaque étudiant !
"""
from pprint import pprint as pp
import sys
import urllib3
from setup_test_api import (
API_PASSWORD,
API_URL,
API_USER,
APIError,
CHECK_CERTIFICATE,
get_auth_headers,
GET,
POST_JSON,
SCODOC_URL,
)
if not CHECK_CERTIFICATE:
urllib3.disable_warnings()
print(f"SCODOC_URL={SCODOC_URL}")
print(f"API URL={API_URL}")
HEADERS = get_auth_headers(API_USER, API_PASSWORD)
# Liste de tous les étudiants en cours (de tous les depts)
etuds = GET("/etudiants/courants", headers=HEADERS)
print(f"{len(etuds)} étudiants courants")
nb_etuds = 0
nb_sems = 0
nb_empty_sems = 0
for etud in etuds:
if etud["code_nip"]:
sems = GET(f"/etudiant/nip/{etud['code_nip']}/formsemestres", headers=HEADERS)
assert not sems or [sem["annee_scolaire"] for sem in sems]
nb_etuds += 1
nb_sems += len(sems)
if not sems:
nb_empty_sems += 1
print(
f"testé {nb_etuds} etuds avec NIP, et {nb_sems} semestres (dont {nb_empty_sems} vides)."
)