Repository navigation
Conversation
|
Trivial-diff advisory (#15740, non bloquant). |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
[DONE c.1011 -- lane myia-po-2023:CoursIA-2] Fermeture doublonJ'ouvre cette PR au depart de l'enquete c.1010 : le test Fix alternatif pousse sur la voie : #18846 (
Les deux passent, mais #18846 etend la portee : un autre module pourrait vouloir mocker l'horloge (futur Geste
Une fois #18846 mergee et Refs #18840, #18845, #18846, Tell c.9974 ★ fondateur (doublon de concurrence). |
fix(tests,#18840): ancre les timestamps du fake_runner sur l'horloge de main()
Constat
scripts/tests/test_soft_deadlock_detector.py::test_main_json_and_fail_on_findings_rc2échoue en worktree détaché frais surorigin/main(repro 02/10 13:27Z par le reporter). Le diagnostic du body issue suggérait un refactor demain()qui aurait cassé le monkeypatch du global_default_runner— c'est inexact. La cause réelle est plus simple :analyze()mesure la fenêtre de churn depuisnow = datetime.now(timezone.utc)(l'horloge réelle), alors que les helpers_pr/_tsdu test sont figés sur leNOWdu module (2026-10-01 12:00 UTC). À chaque ré-exécution postérieure à la date du gel, les commentaires « 1 h avant NOW figé se retrouvent en dehors de la fenêtre de 24 h mesurée depuis l'horloge réelle —len(recent) <= 5→ 0 finding →rc=0au lieu derc=2.Confirmation first-hand : le fake_runner est bien appelé (la sortie stderr compte « 1 PRs scannées »), mais
analyzerendfindings=0. Le runner monkeypatch fonctionne, c'est la fenêtre temporelle du fixture qui ne suit plus.Effet
Toutes les PRs ouvertes ont leur job « Scripts Tests (CPU) » rougi sur cette jambe, sans rapport avec leur diff (constaté sur #18722 run 36998559571, log job 110810778934 :
2 failed, 16952 passed— l'autre échec était imputable à po-2026, réparé par 9e85053).Correctif
Le fake_runner ancre ses timestamps sur
datetime.now(timezone.utc)(l'horloge quemain()utilise), au lieu de dépendre duNOWdu module. La fixture frozen sert toujours poursdd.analyze(prs, NOW, ...)(les autres tests, qui passent le control-now passé explicitement, restent OK).Acceptance
pytest scripts/tests/test_soft_deadlock_detector.py -qrend 17 passed (avant : 1 failed, 16 passed) ;pytest scripts/tests/test_soft_deadlock_detector.py::test_main_json_and_fail_on_findings_rc2 -qrend 1 passed sur le worktree détaché frais (avant : AssertionError 0 == 2) ;Conformité
Grain: LIGHT/test -- lane myia-po-2027:CoursIA-2 -- prev: MED/notebook-python #18649