corrige chemin scodoc.log

This commit is contained in:
Emmanuel Viennet 2022-10-31 14:45:52 +01:00
parent 4f76da6a29
commit 9906fd43ab
4 changed files with 37 additions and 33 deletions

View File

@ -428,9 +428,13 @@ Le champ `notes` dans une évaluation est un dictionnaire dont les clés sont le
| filigranne | texte en surimpression | 'Provisoire' | filigranne | texte en surimpression | 'Provisoire'
## Note: la fonction log ## 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") log("toto")
``` ```

View File

@ -50,6 +50,7 @@ Il est utile de vérifier que le serveur Web a bien démarré, avec
systemctl status nginx systemctl status nginx
## Création des bases de données ## Création des bases de données
ScoDoc 9 utilise une base de données unique, regroupant tous les 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` départements et les utilisateurs. Elle est nommée `SCODOC` (et `SCODOC_DEV`
en mode développement, ou `SCODOC_TEST`pour les tests unitaires). 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_DEV # pour la base "developement"
./tools/create_database.sh SCODOC_TEST # pour les tests unitaires ./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). (qui a été créé par le script d'installation précédent).
## Variables d'environnement ## Variables d'environnement
Le serveur utilise des variables d'environnement donnant la Le serveur utilise des variables d'environnement donnant la
configuration de base. configuration de base.
Le plus simple est de les grouper dans un fichier `.env` (dans 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: qui sera lu automatiquement au démarrage:
# .env for ScoDoc (production) # .env for ScoDoc (production)

View File

@ -45,7 +45,7 @@ semestre, et lui envoyer son bulletin par mail. (sur la page web de son
bulletin, petit menu "Autres opérations"). bulletin, petit menu "Autres opérations").
À ce moment, regarder le log À ce moment, regarder le log
`/opt/scodoc/instance/log/notes.log` `/opt/scodoc-data/log/scodoc.log`
On devrait voir quelque chose ressemblant à: 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`) Et d'autre part dans le log de postfix (`/var/log/mail.log`)
``` ```
Sep 7 11:37:42 xxxxxxxx postfix/smtp[31240]: ED1F62BAB22: Sep 7 11:37:42 xxxxxxxx postfix/smtp[31240]: ED1F62BAB22:
to=<emmanuel.viennet@xxxx.fr>, relay=gmail-smtp-in.l.google.com[209.85.135.27]:25, delay=1.5, to=<emmanuel.viennet@xxxx.fr>, 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: 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. 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 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 ! *Adresse de test*. Ne pas oublier de l'enlever une fois les essais effectués !

View File

@ -3,7 +3,7 @@
ScoDoc est basé sur Flask, se référer à la doc de Flask pour aller plus loin. 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 su scodoc # si nécessaire
cd /opt/scodoc cd /opt/scodoc
@ -26,9 +26,17 @@ On utilise `pytest`. Ainsi, la commande
lance l'ensemble des tests unitaires. 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) ## 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 ## 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 ### 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_ENV=test_api
FLASK_DEBUG=1 FLASK_DEBUG=1
```
2. En tant qu'utilisateur scodoc, lancer:
``` ```
1. En tant qu'utilisateur scodoc, lancer:
```bash
tools/create_database.sh --drop SCODOC_TEST_API tools/create_database.sh --drop SCODOC_TEST_API
flask db upgrade flask db upgrade
flask sco-db-init --erase flask sco-db-init --erase
flask init-test-database flask init-test-database
``` ```
Ces commandes vont effacer la base `SCODOC_TEST_API` si elle existe, la 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, 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. l'initialiser et la peupler de données fictives pour les tests.
3. Relancer ScoDoc: 3. Relancer ScoDoc:
``` ```bash
flask run --host 0.0.0.0 flask run --host 0.0.0.0
``` ```
### Configuration du client de test API ### Configuration du client de test API
1. Copier le fichier `scodoc/tests/api/dotenv_exemple` dans 1. Copier le fichier `scodoc/tests/api/dotenv_exemple` dans
`scodoc/tests/api/.env`, et éditer ce fichier `.env`pour y configurer votre `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 *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 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: client de test est sur la même machine que le serveur ScoDoc, c'est simplement:
``` ```bash
SCODOC_URL = "http://localhost:5000/" SCODOC_URL="http://localhost:5000/"
``` ```
### Lancement des tests de l'API ### 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). le client (qui peut être un autre shell de la même machine, bien sûr).
``` ```bash
cd /opt/scodoc/ cd /opt/scodoc/
pytest tests/api/test_api_xxx.py # remplacer xxx par votre test 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 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. 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 pytest --pdb -x tests/api/test_api_departements.py
``` ```
lancera un test en mode "interactif", utile pour les mises au point. lancera un test en mode "interactif", utile pour les mises au point.