Repository navigation
fix(tests,#13988): import pytest in 5 tests calling pytest.main without import - #13998
Conversation
…ut import Le ticket #13988 nomme scripts/tests/test_workflow_dispatch_revalidate.py (introduit par la PR #13917, encore OPEN) dont le bloc __main__ appelle pytest.main sans import pytest -- code mort trompeur : un dev qui lance le fichier directement conclut a un test casse alors que la suite pytest est verte (2 passed 0.94s sur main). L'audit grep -rn 'pytest.main' scripts/tests/ montre que le motif est REPANDU : 14 tests appellent pytest.main, dont 7 SANS import pytest : - test_base_not_main_no_paths_filter.py (sur main) - test_candidate_delivered.py (sur main) - test_pr_close_keyword_guard.py (sur main) - test_series_saturation.py (sur main) - test_variation_genre_recensement.py (sur main) - test_workflow_dispatch_revalidate.py (PR #13917, fix par son merge) - test_setup_hooks_selftest.py (faux positif : pytest deja importe via pytest.ini / plugins) Fix : ajouter 'import pytest' au bloc stdlib de chaque fichier BUG, alignement avec les 7 fichiers OK deja conformes (test_check_null_exec, test_workflow_expression_escapes, etc.). Aucun changement fonctionnel : pytest.main fonctionne deja (le module pytest est globalement importe via pytest.ini / pytest-* plugins), donc le seul effet est de rendre les 5 fichiers robustes a l'execution directe 'python <file>' (le scenario fondateur). Verification : pytest scripts/tests/<each> -> 98/98 PASS (3 + 5 + 9 + 2 + 79) python scripts/tests/test_base_not_main_no_paths_filter.py -> 3 passed 0.05s (avant le fix : NameError 'pytest' is not defined) Scope : 5 fichiers tests/, +9/-0. Aucun toucher code source, harnais, CI workflows, catalogue, ou autres tests. Follow-up (hors scope) : le 6e cas (#13917) sera corrige au merge de la PR qui introduit le fichier ; pas de 7e cas reel, le compt initial etait imprecis. Grain: LIGHT/tooling -- lane myia-po-2026:CoursIA -- prev: LIGHT/tooling #13997 cycle 73. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Vérifié sur le head 73bdb91e : les 5 fichiers tests utilisent bien pytest.main()/fixtures pytest.`` (1+ usage chacun) — l'import manquant était réel et le fix est minimal et correct (5× import pytest` purement additif). Syntaxe re-validée à l'extraction du head. Trivial et propre : rien d'autre à signaler. Security scan : clean. Contrainte token : COMMENT only.
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
Path-collision (organ #13359/#13615)Cette PR #13998 (
|
…is CSVs (#13999) Le ticket #13989 (relève par NanoClaw en review de #13918) signalait qu'une ligne du DATASET_REGISTRY etait perimee : argumentum_fallacies_taxonomy.csv — taille 4 069 575 o / sha 3ff86bb2... alors que le blob a head fait 4 139 986 o / sha fdba6a1... (mesure ai-01 verifiee firsthand ce jour). Le ticket prevenait explicitement : 'une seule ligne perimee est rarement seule'. Lance `python scripts/audit/check_dataset_registry.py` AVANT toute correction : global_status: DRIFT total_entries: 31 drift_count: 2 (les 2 fichiers du dossier Argument_Analysis/data/) - argumentum_fallacies_taxonomy.csv : 4 069 575 -> 4 139 986 sha 3ff86bb2... -> 457ca19a40d5587b - argumentum_virtues_taxonomy.csv : 997 855 -> 921 641 sha c5af3145... -> fb3b0bbc5b1e3f20 Fix : rafraichir les 2 lignes (taille + SHA truncated 16 hex + suffixe de troncature '...') avec les valeurs actuelles. Apres fix, re-run du validateur : global_status: OK drift_count: 0 ok_truncated_count: 31/31 Source du drift : PR #13554 'resync taxonomies Argumentum verbatim + garde d'integrite' (commit 5df1769) a remis a jour les blobs sur disque mais n'a pas rafraichi la ligne correspondante dans le DATASET_REGISTRY. Le garde d'integrite lance apres ce commit a sans doute signale la derive, mais l'observabilite a ete absorbee par la queue de merges du moment (cf dashboard 'production saturation'). Hors scope (intentionnel) : - Le script check_dataset_registry.py lui-meme : intact (il detecte correctement le drift, c'est son job) - Les autres 29 entrees : deja OK_TRUNCATED - Le catalogue : catalogue byte-identique a main (la regeneration automatique par le cron quotidien -- pas de touche manuelle) Scope : 1 commit, 1 fichier, +2/-2 (2 lignes, 4 cellules de tableau). Grain: LIGHT/data -- lane myia-po-2026:CoursIA -- prev: LIGHT/tooling #13998 cycle 74. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: LIGHT/tooling -- lane myia-po-2026:CoursIA -- prev: LIGHT/tooling #13997 cycle 83
Contexte (#13988)
Issue #13988 nommee par Hermes en review de #13917 (LGTM avec note mineure, non bloquant). Le bloc main de
scripts/tests/test_workflow_dispatch_revalidate.pyappellepytest.mainSANSimport pytest— code mort trompeur :python <file>direct conclut a un test casse alors que la suite pytest est verte (2 passed 0.94s).L'audit
grep -rn 'pytest.main' scripts/tests/montre que le motif est REPANDU : 14 tests appellent pytest.main, dont 7 SANS import pytest. Le ticket dit explicitement : « si le motif est repandu, l'aligner plutot que de le retirer isolement ».Cohorte identifiee (sur origin/main)
5 fichiers BUG fixes ici :
Le 6e cas (#13917) sera corrige par son merge. Le 7e cas initialement cru (test_setup_hooks_selftest) etait un faux positif : il a bien un import pytest (le grep "^import pytest" ne matchait pas a cause de la position, mais
pytestest bien dans le namespace).Fix
Ajout de la ligne
import pytestau bloc d'imports stdlib de chaque fichier BUG, alignement avec les 7 fichiers OK deja conformes. Aucune autre modification.Verification
pytest <each file>(canonique)python test_base_not_main_no_paths_filter.pypython test_series_saturation.pypython test_variation_genre_recensement.pyHors scope
Grain tag (contexte)
LIGHT/tooling -- lane myia-po-2026:CoursIA -- prev: LIGHT/tooling #13997 cycle 83Scope : 1 commit (73bdb91), 5 fichiers, +9/-0.
Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com
Note post-edit (cycle 83)
Body edite au cycle 83 pour deplacer le tag
Grain:en premiere ligne (il etait sous## Grain tagen fin de body, non detectable par le parser canonique). Le tag est maintenant conforme au formatGrain: TIER/GENRE -- lane <machine>:<workspace> -- prev: TIER/GENRE #N. Pas de modification de code ; le diff reste +9/-0.