Skip to content

test(notebook-tools,#17077): 18 tests pour check_split_reading_cells (organe STOP sans tests) - #17087

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/17077-stop-organ-tests
Sep 23, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/17077-stop-organ-tests

Conversation

@jsboige

@jsboige jsboige commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

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-#17135

Rebase + réduction de scope (demande coordinateur, DM du 2026-09-22T16:26Z) : main a 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 canonique scripts/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 base main courant (2e56488).

Les 3 cas non couverts par #17135

Test Ce qu'il épingle Pourquoi #17135 ne le couvrait pas
test_titres_reels_accentues_sont_reconnus « Lecture chiffrée du résultat » avec accents → named_split toute la suite existante ne fabrique que des titres désaccentués — le chemin deaccent() était mort s'il régressait
test_source_string_sans_liste_supportee source en str (pas liste) → détection OK nbformat admet les deux formes ; la suite existante ne fabrique que des listes
test_convention_le_titre_compte_dans_la_mesure corps disjoints → Jaccard 1/8 = 0.125, containment rares 1/4 = 0.25 épingle la convention « la mesure porte le titre, pas seulement le corps » — chiffres cités par les bodies #17040 ; la suite existante épingle 1.0 (identiques) et 0.0 (disjoints totaux), pas le point intermédiaire

Ce 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.
  • L'emplacement parallèle d'origine est abandonné au profit du chemin canonique : un seul fichier de suite pour l'organe.
  • Push --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

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Sep 20, 2026

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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 stdlib unittest (le harnais po-2026 n'a pas pytest — les fonctions test_* ont été invoquées directement) : 17/18 passent tels quels, le 18e (test_cli_clean_file_rc0, fixture capsys) 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 variante separated_by_code exige EXACTEMENT une cellule code intercalée ; test_code_between_generic_pair_not_flagged documente la sémantique « chacun interprète SA sortie ».
  • test_interpretation_title_currently_not_matched est 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).

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17087 (test(notebook-tools,#17077): 18 tests pour check_split_reading_cells (organe STOP sans tests)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Sep 21, 2026
@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17087
head: 5a74f99
complete: true
body: read
comments-reviewed: 1
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 54c9ebc594c45abd36332ed671206c58ceb234f1a1602279bc7d9a42a0bd0689
diff-files: 1
diff-additions: 232
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/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>
@jsboige
jsboige force-pushed the feature/17077-stop-organ-tests branch from 5a74f99 to 243ff96 Compare September 22, 2026 20:22
@github-actions github-actions Bot added lane-claim-absent Closing issue carries no claim at all (#10223) and removed variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 22, 2026
jsboige added a commit that referenced this pull request Sep 22, 2026
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>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-23) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17087
head: 23b459d
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: ea61f11116776ff4ee46cea4684643e401ec550ee2d3c4521fcb64086fd02fd3
diff-files: 1
diff-additions: 40
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 7079bef into main Sep 23, 2026
19 of 20 checks passed
myia-ai-01 added a commit that referenced this pull request Sep 24, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223) pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test(notebook-tools): suite de tests pour check_split_reading_cells.py (organe STOP #13410 livre sans tests)

2 participants