Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test » demande une base de données et plusieurs minutes ; ceux-ci lisent le code et exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la boucle d'écriture. La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le lanceur l'annonce présente ou absente, et les tests du vrai transfert se déclarent ignorés — avec la commande qui manque — au lieu de passer en silence. Vérifié dans les trois états : dépôt absent, présent non compilé, compilé. Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme l'installation d'une VM et par le même script. --- EN --- These 382 tests only ran when invoked by hand, so never. "make test" wants a database and several minutes; these read the code and run the generated shell fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets: test_unit, and test_unit_file for the writing loop. The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the runner announces it present or absent, and the real-transfer tests declare themselves skipped — naming the missing command — instead of passing quietly. Checked in all three states: repo absent, present but unbuilt, built. Along the way, compile_and_run.sh verifies the repo transfer, like a VM install and through the same script. Assisted-by: Claude Opus 5
110 lines
4 KiB
Markdown
110 lines
4 KiB
Markdown
---
|
|
name: erplibre-commands
|
|
description: Commandes ERPLibre — changer de version Odoo, lancer/tester une instance, opérations base de données, tester un module précis avec couverture, formatage, Docker, Google Repo, installation. À charger dès qu'une commande make ou un script du dépôt est nécessaire.
|
|
---
|
|
|
|
|
|
## Changement de version Odoo
|
|
```bash
|
|
make switch_odoo_18 # Passer à Odoo 18 (défaut)
|
|
make switch_odoo_17 # Passer à Odoo 17
|
|
make switch_odoo_16 # Passer à Odoo 16
|
|
make switch_odoo_15 # Passer à Odoo 15
|
|
make switch_odoo_14 # Passer à Odoo 14
|
|
make switch_odoo_13 # Passer à Odoo 13
|
|
make switch_odoo_12 # Passer à Odoo 12
|
|
make switch_odoo_16_update # Passer + mettre à jour les dépendances
|
|
```
|
|
|
|
## Exécution
|
|
```bash
|
|
make run # Lancer Odoo (port 8069)
|
|
make run_test # Lancer avec la DB "test"
|
|
./run.sh -d ma_base # Lancer avec une DB spécifique
|
|
./odoo_bin.sh [args] # Exécuter odoo-bin directement
|
|
```
|
|
|
|
## Base de données
|
|
```bash
|
|
make db_create_db_test # Créer la DB "test"
|
|
make db_clone_test_to_test2 # Cloner test -> test2
|
|
./script/database/db_restore.py --database NOM --image IMAGE
|
|
./script/addons/install_addons_dev.sh DB module1,module2
|
|
./script/addons/update_addons_all.sh DB
|
|
```
|
|
|
|
## Tests
|
|
### Unitaires python (rapides, sans base de données)
|
|
```bash
|
|
make test_unit # tout ce qui tourne sans DB ni Odoo
|
|
make test_unit_file F=test/test_qemu_motd.py # un seul fichier
|
|
```
|
|
Ils lisent le code et exécutent les fragments de shell générés par `todo.py`,
|
|
avec `sudo`, `pgrep` et `pkill` bouchonnés — quelques secondes. Le lanceur
|
|
annonce sa dépendance à `mobile/erplibre_home_mobile` : absent, les tests du
|
|
transfert mobile se déclarent ignorés au lieu de passer en silence.
|
|
|
|
### Suite complète (base de données requise)
|
|
```bash
|
|
make test # Tests de base + format
|
|
make test_full_fast # Tests complets en parallèle
|
|
make test_full_fast_coverage # Avec couverture de code
|
|
make open_test_coverage # Ouvrir le rapport HTML de couverture
|
|
```
|
|
|
|
### Tester un module spécifique
|
|
```bash
|
|
# 1. Supprimer la DB de test et lancer les tests du module
|
|
./odoo_bin.sh db --drop --database test_mon_module
|
|
./test.sh -d test_mon_module --db-filter test_mon_module -i mon_module
|
|
|
|
# 2. Lancer un fichier de test précis
|
|
./odoo_bin.sh db --drop --database test_mon_module
|
|
./script/addons/install_addons_dev.sh test_mon_module mon_module
|
|
./test.sh -d test_mon_module --db-filter test_mon_module -i mon_module \
|
|
--test-file=addons/MON_REPO/mon_module/tests/test_mon_fichier.py
|
|
|
|
# 3. Avec couverture de code
|
|
./.venv.erplibre/bin/coverage erase
|
|
./odoo_bin.sh db --drop --database test_mon_module
|
|
./test.sh -d test_mon_module --db-filter test_mon_module -i mon_module
|
|
./.venv.erplibre/bin/coverage combine -a
|
|
./.venv.erplibre/bin/coverage report -m
|
|
./.venv.erplibre/bin/coverage html
|
|
```
|
|
|
|
> `test.sh` est un alias de `run.sh` avec `ODOO_MODE_TEST=true --workers 0`.
|
|
|
|
|
|
## Formatage du code
|
|
```bash
|
|
make format # Fichiers à commiter uniquement
|
|
make format_all # Tout formater (parallèle)
|
|
```
|
|
|
|
## Docker
|
|
```bash
|
|
make docker_run_daemon # Lancer en production
|
|
make docker_build_odoo_18 # Builder l'image Odoo 18
|
|
```
|
|
|
|
## Google Repo (gestion multi-dépôts)
|
|
```bash
|
|
make repo_show_status # Statut de tous les dépôts addons
|
|
make repo_configure_all # Configurer tous les dépôts
|
|
make repo_do_stash # Stash tous les dépôts
|
|
.venv.erplibre/bin/repo sync # Synchroniser les dépôts
|
|
```
|
|
|
|
## Installation
|
|
```bash
|
|
make install_os # Dépendances système
|
|
make install_odoo_18 # Installer Odoo 18 complet
|
|
```
|
|
|
|
# Tester un seul module Odoo
|
|
|
|
./run.sh -d test --log-level=test --test-enable --stop-after-init -i nom_module
|
|
|
|
# Tester un fichier de test spécifique
|
|
./run.sh -d test --log-level=test --test-enable --stop-after-init --test-file chemin/vers/test.py
|