forked from ScoDoc/ScoDoc
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
-
On génère une base SQL de test: voir
tools/fakedatabase/create_test_api_database.py
- 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
-
On lance le serveur ScoDoc sur cette base
flask run --host 0.0.0.0
-
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