ScoDoc-PE/tests/api
2023-02-01 20:00:14 +01:00
..
__init__.py Fixes #374: bulletins BUT si non publiés 2022-05-04 05:45:46 +02:00
dotenv_exemple Automatise les tests unitaires de l'API 2022-12-13 10:12:19 +01:00
exemple-api-basic.py API: /formsemestres/query?ine=xxxx 2022-11-02 08:00:24 +01:00
exemple-api-scodoc7.py API ScoDoc 7: autorise POSTs, ajoute groups_view, script exemple/test 2021-11-01 16:59:56 +01:00
make_samples.py Améliore tests unitaires: create_module 2022-12-13 10:12:18 +01:00
README.md Automatise les tests unitaires de l'API 2022-12-13 10:12:19 +01:00
setup_test_api.py rename env var. API_PASSWORD for API tests 2022-10-07 22:37:06 +02:00
start_api_server.sh Automatise les tests unitaires de l'API 2022-12-13 10:12:19 +01:00
test_api_absences.py API: rétabli formation.referentiel_competence_id. Tous tests OK. 2022-12-19 13:28:38 +01:00
test_api_assiduites.py Assiduites : révisions + corrections linter 2023-01-31 16:23:49 +01:00
test_api_billets.py renomme /billets_absence/add en /billets_absence/create 2022-08-02 08:48:08 +02:00
test_api_departements.py fix tests api (date courante, changement dans les champs réponses) 2022-11-02 08:00:25 +01:00
test_api_etudiants.py Automatise les tests unitaires de l'API 2022-12-13 10:12:19 +01:00
test_api_evaluations.py API: modification format evaluations, et ajout route /evaluation. 2022-11-02 08:00:25 +01:00
test_api_formations.py Fix test API formation et ajout d'un test (test_formation_export_with_ids) 2023-02-01 14:56:16 +01:00
test_api_formsemestre.py Flag pour bloquer calcul moyenne generale BUT + reimplemente flag blocage moyennes 2022-11-02 08:00:25 +01:00
test_api_jury.py API: modif formsemestre/etudiant. TESTS unitaires OK sauf logos. 2022-08-08 10:06:42 +02:00
test_api_justificatif2.txt justificatifs : archivage+test api (sauf export) 2023-02-01 20:00:14 +01:00
test_api_justificatif.txt justificatifs : archivage+test api (sauf export) 2023-02-01 20:00:14 +01:00
test_api_justificatifs.py justificatifs : archivage+test api (sauf export) 2023-02-01 20:00:14 +01:00
test_api_logos.py Automatise les tests unitaires de l'API 2022-12-13 10:12:19 +01:00
test_api_partitions.py Fix API: /group/<int:group_id>/etudiants/query 2022-08-10 07:24:54 +02:00
test_api_permissions.py api justificatif : modèle + api ( archivage) 2023-02-01 15:08:06 +01:00
test_api_users.py Test API: fix (login utilisateur unique) 2023-02-01 14:56:16 +01:00
test_test.py Fix #578 API : Gestion semestre verrouillé. + tests unitaires API OK. 2023-01-30 13:33:08 +01:00
tools_test_api.py Fix test API formation et ajout d'un test (test_formation_export_with_ids) 2023-02-01 14:56:16 +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