Doc tests API
This commit is contained in:
parent
2b56b6eb23
commit
451594132e
@ -173,6 +173,7 @@ particuliers (décision de jury manuelle).
|
|||||||
- [x] pour le passage en S5, avoir validé toutes les UE du BUT 1 (S1 et S2).
|
- [x] pour le passage en S5, avoir validé toutes les UE du BUT 1 (S1 et S2).
|
||||||
|
|
||||||
Il faut donc:
|
Il faut donc:
|
||||||
|
|
||||||
1. Construire les regroupements d'UE et calculer la moyenne des moyennes d'UE
|
1. Construire les regroupements d'UE et calculer la moyenne des moyennes d'UE
|
||||||
(a priori de même poids, cela n'est pas spécifié dans les textes).
|
(a priori de même poids, cela n'est pas spécifié dans les textes).
|
||||||
|
|
||||||
|
@ -82,6 +82,10 @@ systèmes):
|
|||||||
|
|
||||||
curl -u user_name:password --request POST https://SERVEUR/ScoDoc/api/tokens
|
curl -u user_name:password --request POST https://SERVEUR/ScoDoc/api/tokens
|
||||||
|
|
||||||
|
ou la même chose avec `http`:
|
||||||
|
|
||||||
|
http --auth user_name:password POST https://SERVER/ScoDoc/api/tokens
|
||||||
|
|
||||||
où `SERVEUR` est l'adresse (IP ou nom) de votre serveur.
|
où `SERVEUR` est l'adresse (IP ou nom) de votre serveur.
|
||||||
La réponse doit ressembler à ceci:
|
La réponse doit ressembler à ceci:
|
||||||
```
|
```
|
||||||
|
@ -28,7 +28,7 @@ lance l'ensemble des tests unitaires.
|
|||||||
|
|
||||||
## Tests Selenium (web)
|
## Tests Selenium (web)
|
||||||
|
|
||||||
TODO (Aurélien, JMP)
|
TODO (Aurélien, JMP) *ce projet est abandonné pour l'instant*.
|
||||||
|
|
||||||
## Portail pour tests
|
## Portail pour tests
|
||||||
|
|
||||||
@ -42,6 +42,69 @@ Lancement:
|
|||||||
|
|
||||||
/opt/scodoc/tools/fakeportal/fakeportal.py
|
/opt/scodoc/tools/fakeportal/fakeportal.py
|
||||||
|
|
||||||
|
## Tests de l'API ScoDoc9
|
||||||
|
|
||||||
|
L'API est [documentée ici](ScoDoc9API.md).
|
||||||
|
Des tests sont disponibles sous `scodoc/tests/api`. Le mécanisme de test est un
|
||||||
|
peu différent de celui des tests unitaire: on test un *client* de l'API. Il faut
|
||||||
|
donc un serveur, tournant sur la même machine ou sur une machine distante. Ce
|
||||||
|
serveur doit avoir été configuré avec des données de test.
|
||||||
|
|
||||||
|
### Configuration du serveur pour tester l'API
|
||||||
|
|
||||||
|
1. modifier /opt/scodoc/.env pour indiquer
|
||||||
|
|
||||||
|
FLASK_ENV=test_api
|
||||||
|
FLASK_DEBUG=1
|
||||||
|
|
||||||
|
2. En tant qu'utilisateur scodoc, lancer:
|
||||||
|
|
||||||
|
tools/create_database.sh --drop SCODOC_TEST_API
|
||||||
|
flask db upgrade
|
||||||
|
flask sco-db-init --erase
|
||||||
|
flask init-test-database
|
||||||
|
|
||||||
|
Ces commandes vont effacer la base `SCODOC_TEST_API` si elle existe, la
|
||||||
|
recréer, mettre à jour le schéma pour la dernière version de ScoDoc installée,
|
||||||
|
l'initialiser et la peupler de données fictives pour les tests.
|
||||||
|
|
||||||
|
3. Relancer ScoDoc:
|
||||||
|
|
||||||
|
flask run --host 0.0.0.0
|
||||||
|
|
||||||
|
|
||||||
|
### Configuration du client de test API
|
||||||
|
1. Copier le fichier `scodoc/tests/api/dotenv_exemple` dans
|
||||||
|
`scodoc/tests/api/.env`, et éditer ce fichier `.env`pour y configurer votre
|
||||||
|
*client* de test (ne pas confondre avec `scodoc/.env` qui est la config de
|
||||||
|
votre serveur).
|
||||||
|
Normalement, il est suffisant d'indiquer l'URL de votre serveur. Si le
|
||||||
|
client de test est sur la même machine que le serveur ScoDoc, c'est simplement:
|
||||||
|
```
|
||||||
|
SCODOC_URL = "http://localhost:5000/"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lancement des tests de l'API
|
||||||
|
|
||||||
|
Le serveur scodoc étant lancé comme expliqué ci-dessus, on utilise `pytest`sur
|
||||||
|
le client (qui peut être un autre shell de la même machine, bien sûr).
|
||||||
|
|
||||||
|
```
|
||||||
|
cd /opt/scodoc/
|
||||||
|
pytest tests/api/test_api_xxx.py # remplacer xxx par votre test
|
||||||
|
```
|
||||||
|
|
||||||
|
Rappelons quelques options utiles de `pytest`: `-x` permet de s'arrêter sur la
|
||||||
|
première erreur, et `--pdb` lance directement le débuggueur sur l'erreur.
|
||||||
|
Ainsi,
|
||||||
|
```
|
||||||
|
pytest --pdb -x tests/api/test_api_departements.py
|
||||||
|
```
|
||||||
|
lancera un test en mode "interactif", utile pour les mises au point.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user