1
0
forked from ScoDoc/ScoDoc
ScoDoc/tests/api
2024-07-27 14:34:20 +02:00
..
__init__.py
api_shell.py Script test interactif API 2024-07-27 13:28:06 +02:00
dotenv_exemple
dump_all_results.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
essai_tous_semestres.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
exemple-api-basic.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
exemple-api-list-modules.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
make_samples.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
README.md
setup_test_api.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
start_api_server.sh
test_api_assiduites.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_billets.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_departements.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_etudiants.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_evaluations.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_formations.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_formsemestre_data.py API: modifs qq noms fonctions pour doc 2024-07-17 14:58:49 +02:00
test_api_formsemestre.py Edition en ligne des codes Apgee UE/RCUE. Ajout API. 2024-06-21 00:53:52 +02:00
test_api_jury.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_justificatif2.txt
test_api_justificatif.txt
test_api_justificatifs.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_api_logos.py
test_api_partitions.py Fixes for unit tests 2024-07-27 14:34:20 +02:00
test_api_permissions.py Fix API unit test 2024-06-23 21:13:40 +02:00
test_api_users.py API: ajout samples + amélioration des tests 2024-07-27 13:30:02 +02:00
test_test.py
tools_test_api.py RGPD: ViewEtudData. Implements #842 2024-01-20 17:37:24 +01:00

Tests unitaires de l'API ScoDoc

Lancement des tests

La première fois, copier le fichier tests/api/dotenv_exemple vers tests/api/.env. Il est normalement inutile de modifier son contenu.

Dans un shell, lancer le script start_api_server.py, qui se charge d'initialiser une base SQL de test et de lancer le serveur ScoDoc approprié.

tests/api/start_api_server.sh

Dans un autre shell, lancer les tests:

pytest tests/api

Notes sur la démarche

  1. On génère une base SQL de test: voir tools/fakedatabase/create_test_api_database.py

    1. En tant qu'utilisateur scodoc, lancer:
    # evite de modifier /opt/scodoc/.env
    export FLASK_ENV=test_api
    export FLASK_DEBUG=1 
    tools/create_database.sh --drop SCODOC_TEST_API
    flask db upgrade
    flask sco-db-init --erase
    flask init-test-database
    

    en plus court:

    export FLASK_ENV=test_api && tools/create_database.sh --drop SCODOC_TEST_API && flask db upgrade &&flask sco-db-init --erase && flask init-test-database
    
  2. On lance le serveur ScoDoc sur cette base

    flask run --host 0.0.0.0
    
  3. On lance les tests unitaires API

    pytest tests/api/test_api_departements.py

Rappel: pour interroger l'API, il fait avoir un utilisateur avec (au moins) la permission ScoView dans tous les départements. Pour en créer un:

 flask user-create lecteur_api LecteurAPI @all
 flask user-password lecteur_api
 flask edit-role LecteurAPI -a ScoView
 flask user-role lecteur_api -a LecteurAPI