[FIX] suite unitaire : bit d'exécution, script/*.py balayé, clé i18n

Trois contrôles préexistants passaient au rouge sur cette branche.

Un fichier qui porte un shebang doit être exécutable : commité en 644, il
casse deux invariants, le mode stocké par git et le bit sur disque. Ses six
frères de script/analyse/ sont en 755.

Le contrôle d'outillage ne balayait pas script/*.py : un module partagé posé
là passait pour un paquet tiers non déclaré. Trois fichiers de plus entrent
dans le balayage, sans révéler d'autre dépendance. Et une clé de traduction
appelée six fois n'était pas déclarée, l'écran rendant un mot anglais.

Vérifié : 4105 tests, tout vert.

--- EN ---

Three pre-existing checks were turning red on this branch.

A file carrying a shebang must be executable: committed as 644, it breaks two
invariants, the mode git stores and the bit on disk. Its six siblings in
script/analyse/ are 755.

The tooling check never scanned script/*.py: a shared module placed there was
taken for an undeclared third-party package. Three more files enter the scan,
revealing no other dependency. And a translation key called six times was
undeclared, the screen rendering an English word.

Checked: 4105 tests, all green.

Assisted-by: Claude Opus 5
This commit is contained in:
Mathieu Benoit 2026-08-31 00:03:50 -04:00
parent 01a3ba25ca
commit fcad37c24f
3 changed files with 5 additions and 0 deletions

0
script/analyse/check_comment_hygiene.py Normal file → Executable file
View file

View file

@ -6885,6 +6885,10 @@ TRANSLATIONS = {
"fr": "Hooks git",
"en": "Git hooks",
},
"missing": {
"fr": "absent",
"en": "missing",
},
"up to date": {
"fr": "à jour",
"en": "up to date",

View file

@ -28,6 +28,7 @@ REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
REQUIREMENTS = os.path.join(REPO, "requirement", "erplibre_require-ments.txt")
PATTERNS = (
"script/*.py",
"script/analyse/*.py",
"script/analyse/*/*.py",
"script/odoo/migration/*.py",