Repository navigation
test(notebook-tools,#17077): 18 tests pour check_split_reading_cells (organe STOP sans tests) - #17087
Conversation
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] po-2026 — review #17087 (18 tests pour check_split_reading_cells)
VERDICT: LGTM — exécution réelle des tests contre l'organe au head (5a74f99e), pas une lecture de diff.
Preuve-vive (organe exécuté, pas juste lu) :
- J'ai extrait l'organe +
detect_repeated_prose+ les tests au head SHA, et exécuté les 18 tests sous stdlibunittest(le harnais po-2026 n'a pas pytest — les fonctionstest_*ont été invoquées directement) : 17/18 passent tels quels, le 18e (test_cli_clean_file_rc0, fixturecapsys) vérifié à la main :guard.main([nb])→ rc=0 et « clean » bien dans la sortie stdout capturée. - Le test
test_cli_missing_path_rc1échoue proprement en exécution réelle (message « introuvable » imprimé, rc=1) — la capture stdout du run montre l'organe vivant, pas des assertions fantômes.
Qualité des tests (au-delà du coverage comptable) :
- Les négatifs sont de vrais négatifs :
test_two_code_cells_between_not_flaggedépingle que la varianteseparated_by_codeexige EXACTEMENT une cellule code intercalée ;test_code_between_generic_pair_not_flaggeddocumente la sémantique « chacun interprète SA sortie ». test_interpretation_title_currently_not_matchedest le meilleur test du lot : il épingle un comportement actuel imparfait (INTERPRETATION_RE ne matche pas « Interpretation » français, gap de l'organe #16786) avec l'instruction d'inverser le test si l'organe corrige — exactement ce qu'un test de garde doit faire pour une campagne densité #13410 qui cite cet organe dans 19 bodies.- Conventions documentées dans le code : le mot-titre partagé compte dans Jaccard (
test_overlap_disjoint_bodies: J=0.125, C=0.25 — valeurs recomputées cohérentes avec 1 mot partagé / 8 mots totaux, 1 rare / 4 rares).
Ce qui pourrait être ajouté (non bloquant) : aucun test pour un notebook où la paire nommée est séparée par une cellule code PUIS une markdown (ordre code/md). La matrice de négatifs est déjà dense ; c'est un raffinement, pas un trou.
Note CI : la suite vit dans scripts/notebook_tools/tests/ sans wiring workflow visible dans ce PR — à confirmer que le Lean CI/Always-on guards ne couvre pas ce répertoire (le body #17077 ne promet pas le câblage). Si l'organe est retouché sans que ces tests tournent en CI, la protection n'est que locale — suggérer un follow-up de câblage.
Grain vérifié (MED/tooling), zéro sorry-analogue, scan sécurité clean (aucun credential dans le diff).
Path-collision (organ #13359/#13615)Cette PR #17087 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
…ts (rebase) Rebase sur main courant (193 commits) + restructuration : la suite originale de 18 tests (branche 5a74f99) est couverte a 85% par #17135/#17166/#17170 sur le chemin canonique scripts/tests/. Livraison du delta reel uniquement, dans le fichier canonique : - titres ACCENTUES (« Lecture chiffrée du résultat ») : deaccent() est sur le chemin de detection, aucune donnee accentuee dans la suite existante ; - source str (pas liste) : nbformat admet les deux, la suite existante ne fabrique que des listes ; - convention epinglee « le titre compte dans la mesure » : corps disjoints, Jaccard = 1/8, containment rares = 1/4 (chiffres cites par les bodies #17040). Le fichier parallele scripts/notebook_tools/tests/ est abandonne au profit du chemin canonique. 48 tests collectes, 46 passed + 2 xfailed sur l'organe courant. Grain: po-2026 tests-delta check_split_reading_cells (#17077, rebase post-#17135 demande par coordinateur) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5a74f99 to
243ff96
Compare
Dernier appel a « git » nu de test_merge_dwell.py : _git_version_supported resolvait via le PATH au moment de l'appel — CreateProcess lit le PATH du process APPELANT (vecteur mesure sur #17186/#17172), donc un faux git.exe en tete de PATH basculait le verdict et les skips *_checkout_shallow. - [_GIT, --version] (resolution figee a l'import, PATH propre) ; - controle negatif test_git_version_supported_immune_to_path_pollution : faux git en tete de PATH (copie where.exe->git.exe sur Windows, script git version 1.9.0 sur POSIX), le verdict ne change pas ; - ligne _GIT textuellement identique a celle de #17186 (meme ancre avant def _git) : rebase trivial a son merge, pas de duplication silencieuse. Falsification : pre-fix (git nu restaure) le controle ROUGIT (False != expected) ; post-fix 38 passed (37 + 1). Grain: S/tooling -- lane myia-po-2026:CoursIA -- prev: MED/tooling #17087 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Conflit scripts/tests/test_check_split_reading_cells.py resolu par UNION : les deux cotes sont ADDITIFS et disjoints (21 defs cote main issues de #17471/#17485, 3 tests cote branche pour les cas non couverts), zero collision de nom verifiee sur le reste du fichier. main d'abord, puis les 3 tests de la branche. Preuve : python -m pytest scripts/tests/test_check_split_reading_cells.py -> 63 passed, 3 xfailed (les deux jeux cohabitent). See #17077 Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
[ADJOINT PREFLIGHT] |
…le (#17449) * fix(tests,#17448): _git_version_supported passe par _GIT fige au module Dernier appel a « git » nu de test_merge_dwell.py : _git_version_supported resolvait via le PATH au moment de l'appel — CreateProcess lit le PATH du process APPELANT (vecteur mesure sur #17186/#17172), donc un faux git.exe en tete de PATH basculait le verdict et les skips *_checkout_shallow. - [_GIT, --version] (resolution figee a l'import, PATH propre) ; - controle negatif test_git_version_supported_immune_to_path_pollution : faux git en tete de PATH (copie where.exe->git.exe sur Windows, script git version 1.9.0 sur POSIX), le verdict ne change pas ; - ligne _GIT textuellement identique a celle de #17186 (meme ancre avant def _git) : rebase trivial a son merge, pas de duplication silencieuse. Falsification : pre-fix (git nu restaure) le controle ROUGIT (False != expected) ; post-fix 38 passed (37 + 1). Grain: S/tooling -- lane myia-po-2026:CoursIA -- prev: MED/tooling #17087 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * ci: force fresh pull_request event (body lane-tag corrige c.2026-09-23) --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: myia-ai-01 <myia.ai.01.myia@gmail.com>
Grain: MED/tooling -- lane myia-po-2026:CoursIA -- prev: MED/tooling #16196
Tests de l'organe STOP
check_split_reading_cells.py(#17077) — delta post-#17135Rebase + réduction de scope (demande coordinateur, DM du 2026-09-22T16:26Z) :
maina reçu #17135 (+404/-15), #17166 et #17170 sur ce fichier — la suite y est passée à ~45 tests couvrant 15 de mes 18 tests originaux. Le livrable est désormais le delta réel : 3 tests portés dans le fichier canoniquescripts/tests/. La branche originale (5a74f99, emplacement parallèle sous notebook_tools — hors du périmètre de cette PR, abandonné) est remplacée par un commit unique sur basemaincourant (2e56488).Les 3 cas non couverts par #17135
test_titres_reels_accentues_sont_reconnusnamed_splitdeaccent()était mort s'il régressaittest_source_string_sans_liste_supporteesourceenstr(pas liste) → détection OKtest_convention_le_titre_compte_dans_la_mesureCe qui a été abandonné (couvert par #17135/#17166/#17170)
15 tests : named split, forme chiffrée en second, generic pair, interprétation nue invisible, separated-by-code, adjacency md-code-md, deux cellules code, carnet clean, en-têtes Exercice (l.282/475 de la suite), marques markdown dans les titres, overlap identique (l.133), les 3 codes retour CLI. Recouvrement vérifié test par test contre le contenu, pas les noms.
Validation
python -m pytest scripts/tests/test_check_split_reading_cells.py -q: 48 collectés, 46 passed + 2 xfailed (les 2 xfail strict préexistants) sur l'organe courant — les 3 delta passent.--force-with-lease(inhérent au rebase ordonné par le coordinateur ; l'original 5a74f99 reste dans le reflog).Closes #17077 (l'organe a désormais une suite de tests complète : 45 tests #17135+seq sur le canonique + 3 delta accentués/string/convention).
🤖 Generated with Claude Code