From e24882b8c0fd5c0297929741163e0520be239738 Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 31 Oct 2022 14:45:52 +0100 Subject: [PATCH] corrige chemin scodoc.log --- docs/ApiGenerationBulletinsPdf.md | 8 +++-- docs/GuideInstallDebian11Advanced.md | 7 ++-- docs/ProblemesMail.md | 7 ++-- docs/TestsScoDoc.md | 48 ++++++++++++++-------------- 4 files changed, 37 insertions(+), 33 deletions(-) diff --git a/docs/ApiGenerationBulletinsPdf.md b/docs/ApiGenerationBulletinsPdf.md index 02e9cc8..e3e90f2 100644 --- a/docs/ApiGenerationBulletinsPdf.md +++ b/docs/ApiGenerationBulletinsPdf.md @@ -428,9 +428,13 @@ Le champ `notes` dans une évaluation est un dictionnaire dont les clés sont le | filigranne | texte en surimpression | 'Provisoire' - ## Note: la fonction log -Pour la mise au point, il peut être utile de recourir à la bonne vieille fonction log, qui envoie du texte dans le fichier de log courant, normalement `/opt/scodoc/instance/log/notes.log`. La date et le saut de ligne final sont automatiquement ajoutés. + +Pour la mise au point, il peut être utile de recourir à la bonne vieille +fonction log, qui envoie du texte dans le fichier de log courant, normalement +`/opt/scodoc-data/log/scodoc.log`. La date et le saut de ligne final sont +automatiquement ajoutés. + ``` log("toto") ``` diff --git a/docs/GuideInstallDebian11Advanced.md b/docs/GuideInstallDebian11Advanced.md index 6be30ee..3784a0d 100644 --- a/docs/GuideInstallDebian11Advanced.md +++ b/docs/GuideInstallDebian11Advanced.md @@ -50,6 +50,7 @@ Il est utile de vérifier que le serveur Web a bien démarré, avec systemctl status nginx ## Création des bases de données + ScoDoc 9 utilise une base de données unique, regroupant tous les départements et les utilisateurs. Elle est nommée `SCODOC` (et `SCODOC_DEV` en mode développement, ou `SCODOC_TEST`pour les tests unitaires). @@ -63,15 +64,15 @@ Pour créer la base de données, lancer le script: ./tools/create_database.sh SCODOC_DEV # pour la base "developement" ./tools/create_database.sh SCODOC_TEST # pour les tests unitaires - -Les bases créées appartiennent à l'utilisateur (rôle) postgres `scodoc` +Les bases créées appartiennent à l'utilisateur (rôle) postgres `scodoc` (qui a été créé par le script d'installation précédent). ## Variables d'environnement + Le serveur utilise des variables d'environnement donnant la configuration de base. Le plus simple est de les grouper dans un fichier `.env` (dans - `/opt/scodoc-data/.env`) + `/opt/scodoc-data/.env`) qui sera lu automatiquement au démarrage: # .env for ScoDoc (production) diff --git a/docs/ProblemesMail.md b/docs/ProblemesMail.md index 608fe46..0960747 100644 --- a/docs/ProblemesMail.md +++ b/docs/ProblemesMail.md @@ -45,7 +45,7 @@ semestre, et lui envoyer son bulletin par mail. (sur la page web de son bulletin, petit menu "Autres opérations"). À ce moment, regarder le log -`/opt/scodoc/instance/log/notes.log` +`/opt/scodoc-data/log/scodoc.log` On devrait voir quelque chose ressemblant à: ``` @@ -54,6 +54,7 @@ On devrait voir quelque chose ressemblant à: ``` Et d'autre part dans le log de postfix (`/var/log/mail.log`) + ``` Sep 7 11:37:42 xxxxxxxx postfix/smtp[31240]: ED1F62BAB22: to=, relay=gmail-smtp-in.l.google.com[209.85.135.27]:25, delay=1.5, @@ -62,7 +63,7 @@ delays=0.03/0/0.41/1, dsn=2.0.0, status=sent (250 2.0.0 OK 1220942550 y2si226470 Cela devrait permettre de savoir: - 1. si ScoDoc tente d'envoyer un mail (`notes.log`); + 1. si ScoDoc tente d'envoyer un mail (`/opt/scodoc-data/log/scodoc.log`); 2. si le serveur SMTP arrive à traiter ce mail. @@ -74,5 +75,3 @@ notification ou de bulletins sans déranger les étudiants ou les collègues). Pour cela, aller sur la page *Paramétrage*, tout en bas, et indiquer une *Adresse de test*. Ne pas oublier de l'enlever une fois les essais effectués ! - - diff --git a/docs/TestsScoDoc.md b/docs/TestsScoDoc.md index 2712d6a..17f6f27 100644 --- a/docs/TestsScoDoc.md +++ b/docs/TestsScoDoc.md @@ -3,7 +3,7 @@ ScoDoc est basé sur Flask, se référer à la doc de Flask pour aller plus loin. -On travaille toujours en tant qu'utilisateur `scodoc`, dans le virtualenv: +On travaille toujours en tant qu'utilisateur `scodoc`, dans le *virtualenv*: su scodoc # si nécessaire cd /opt/scodoc @@ -26,9 +26,17 @@ On utilise `pytest`. Ainsi, la commande lance l'ensemble des tests unitaires. +### Création de la base de données pour les tests unitaires + +```bash +./tools/create_database.sh SCODOC_TEST +export FLASK_ENV=test +flask db upgrade +``` + ## Tests Selenium (web) -TODO (Aurélien, JMP) *ce projet est abandonné pour l'instant*. +*Ce projet est abandonné pour l'instant* (Aurélien, JMP). ## Portail pour tests @@ -52,60 +60,52 @@ 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 -``` + 1. modifier `/opt/scodoc/.env` pour indiquer +```bash FLASK_ENV=test_api - FLASK_DEBUG=1 -``` - 2. En tant qu'utilisateur scodoc, lancer: + FLASK_DEBUG=1 ``` + 1. En tant qu'utilisateur scodoc, lancer: +```bash 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: -``` +```bash 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). + 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/" + ```bash + 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 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). -``` +```bash 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, -``` +Ainsi, +```bash pytest --pdb -x tests/api/test_api_departements.py ``` lancera un test en mode "interactif", utile pour les mises au point. - - - - - - -