erplibre/.claude/skills/erplibre-commands/SKILL.md
Mathieu Benoit 5b748e347e [ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée
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
2026-08-23 02:11:50 -04:00

4 KiB

name description
erplibre-commands 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

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

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

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)

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)

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

# 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

make format                  # Fichiers à commiter uniquement
make format_all              # Tout formater (parallèle)

Docker

make docker_run_daemon       # Lancer en production
make docker_build_odoo_18    # Builder l'image Odoo 18

Google Repo (gestion multi-dépôts)

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

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