[DTP-Worker] hardening correctness · l'alignement du compteur de tests audit_4big↔discovery (fix ASCII ac595d0) était INCOMPLET · criteria.py gardait def (un espace figé) là où la source sœur reglib.discovery a def\s+ → def test_x(/def\ttest_x( (Python valide) loupés → sous-comptage silencieux + désaccord avec l'autorité byte-gatée de la colonne « Tests » des fiches (violation #6, même racine « détecter la forme, pas une graphie » que ac595d0/fd99362)
Fix chirurgical `def ` → `def\s+` (forme strictement identique à discovery._TEST_METHOD_RE) + teeth test_tests_counts_non_single_space_def_separator (prouvé mordant : ancien regex compte 1/3, nouveau 3/3). Occurrence latente (0 def multi-espace dans le dépôt aujourd'hui) → quality_report.json byte-identique (audit_4big s'auto-exclut de son scoring). Cascade matrice régression 627→628 / 610→611 ; fiches qa+erpnext_backend re-dérivées. Axe recursion (os.walk vs os.listdir) non-occurrent, laissé. Classe compteur-coïncidence désormais close sur ses 2 axes. Pas de nouveau gate (#5 · check_readme_claims mord déjà). 0 code moteur V18 (bloqué #6), 0 commande VPS (#8). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -126,6 +126,27 @@ class CriteriaTest(unittest.TestCase):
|
||||
res = criteria.crit_tests(mod, 1)
|
||||
self.assertIn("2 méthodes", res["evidence"])
|
||||
|
||||
def test_tests_counts_non_single_space_def_separator(self):
|
||||
# Robustesse (complète l'alignement char-class du fix ASCII) : `def` et
|
||||
# le nom de méthode peuvent être séparés par PLUSIEURS espaces ou une
|
||||
# tabulation — du Python valide. Le littéral `def ` (un seul espace)
|
||||
# loupait `def test_x(` / `def\ttest_x(` → sous-comptage silencieux et
|
||||
# DÉSACCORD avec la source sœur reglib.discovery (`def\s+`), autorité de
|
||||
# la colonne « Tests » des fiches. Les deux compteurs du MÊME concept
|
||||
# doivent coïncider sur toute graphie valide (#6).
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
mod = os.path.join(d, "mod")
|
||||
tdir = os.path.join(mod, "tests")
|
||||
os.makedirs(tdir)
|
||||
with open(os.path.join(tdir, "test_mod.py"), "w",
|
||||
encoding="utf-8") as fh:
|
||||
fh.write("import unittest\nclass T(unittest.TestCase):\n"
|
||||
" def test_one_space(self):\n pass\n"
|
||||
" def test_two_spaces(self):\n pass\n"
|
||||
" def\ttest_tab(self):\n pass\n")
|
||||
res = criteria.crit_tests(mod, 1)
|
||||
self.assertIn("3 méthodes", res["evidence"])
|
||||
|
||||
def test_cli_fails_without_entrypoint(self):
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
mod = _make_module(d, cli=False)
|
||||
|
||||
Reference in New Issue
Block a user