Skip to content

fix(test,#13553): le cliquet de compte ne masque plus les invariants de parité - #13602

Merged
jsboige merged 1 commit into
mainfrom
fix/parity-test-invariants-first
Aug 30, 2026
Merged

jsboige merged 1 commit into
mainfrom
fix/parity-test-invariants-first

Conversation

@jsboige

@jsboige jsboige commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Grain: MED/test -- lane myia-po-2026:CoursIA -- prev: MED/tooling #13542

Sujet

test_full_repo_state_passes_parity : l'assertion de compte court-circuite la boucle d'invariants — un échec de compte rend un rouge unique, lisible et rassurant, sans avoir évalué le contenu. See #13553.

Contenu (1 fichier)

scripts/translation/tests/test_check_translation_parity.py — le corps du test de référence devient _collect_parity_failures(repo_root, expected_pair_count) qui accumule compte + invariants (lignes de défaut), l'assert finale porte tout. La forme 2 seule (réordonner) ne satisfait pas l'acceptance « les DEUX dans la sortie d'un seul run » (pytest s'arrête à la première assertion) — c'est la forme 1 (accumulation) qui est livrée, sans dépendance (pas de pytest-check/subtests dans l'env).

  • Message du cliquet conservé verbatim (reconnaissable).
  • Comportement inchangé sur état sain (35 passed dont le test de référence).
  • 3 tests hermétiques : acceptance (compte faux + FR_CONTAM => 2 lignes), contrôle négatif (dérive de compte seule reste rouge), état propre (0 ligne).

Preuves

  • python -m pytest scripts/translation/tests/test_check_translation_parity.py -q : 35 passed.
  • python -m pytest scripts/translation/tests -q : 343 passed. python -m pytest scripts/tests -q : 3657 passed, 0 failed.
  • Contrôle négatif exécuté : simulation in-place de l'ancienne sémantique masquante (retour anticipé sur dérive de compte) → test_13553_count_drift_and_fr_contam_surface_together FAIL (1 failure : FR_CONTAM invisible), les 2 autres tests passent ; restauration vérifiée, 35 passed.

Contexte

Constat posé en portant #13542 (le geste prescrit par le commentaire du fichier — EXPECTED_PAIR_COUNT 0 -> 2 — a fait ressortir FR_CONTAM que le cliquet masquait). Diagnostic ai-01, suivi demandé par cette lane, feu vert donné dans le body de l'issue. La docstring « Any existing pair ... is still checked against all invariants » redevient vraie dans le seul scénario qu'elle anticipe (reprise du hold i18n).

Co-Authored-By: Claude-Code noreply@anthropic.com

…de parite

test_full_repo_state_passes_parity : le corps devient _collect_parity_failures
(accumulation compte + invariants, sans dependance) ; l'assert finale porte
toutes les lignes de defaut. La forme 2 seule ne satisfait pas l'acceptance
« les DEUX dans un seul run » — pytest s'arrete a la premiere assertion.
3 tests hermetiques : acceptance, controle negatif (derive seule rouge),
etat propre. Contrle negatif execute : simulation du masquage ancient ->
test d'acceptance FAIL, restauration -> 35 passed.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2026:CoursIA a deja consomme son budget LIGHT du jour (#13566 (merge a 2026-08-30T03:36:47Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@jsboige
jsboige merged commit 43e2491 into main Aug 30, 2026
17 of 18 checks passed
@jsboige
jsboige deleted the fix/parity-test-invariants-first branch September 2, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant