test: podziel osiem plików testowych po lustrze źródeł (faza 5b)#70
Merged
Conversation
Ostatni dług rozmiarowy w .py. Osiem plików testowych podzielonych równolegle, lustrzanie do pakietów źródłowych powstałych w fazach 1-4. test_render.py 3742 → 11 plików + helper (125 → 125 testów) test_mux.py 1524 → 9 plików (65 → 65) test_recorder_select.py 1514 → 8 plików + helper (56 → 56) test_compile.py 1295 → 6 plików + helper (47 → 47) test_capture.py 1279 → 4 pliki + helper (40 → 40) test_selects_wiring.py 928 → 6 plików + helper (32 → 32) test_selects_compile_render.py 741 → 4 pliki + helper (integ) test_popup_compile_render.py 663 → 2 pliki + helper (integ) ZERO plików testowych ponad 600 linii. Największy pozostały: 591 (test_source.py, nietknięty, zawsze był pod limitem). Każdy agent zweryfikował swój podział porównaniem ZBIORU node-ID przed i po (nie samej liczby — para zgubiony+zduplikowany zachowuje licznik). Wszystkie osiem: diff pusty. WZORZEC FABRYKI ZAMIAST FIXTURE. Nazwa współdzielonego fixture'u pojawia się też jako parametr testu, więc `from ._helpers import page` daje F811 na każdej funkcji — a `# noqa: F401` tego nie ucisza. Obejście przez alias przechodzi na ruff 0.15 i pada na przypiętym 0.9.2. Helpery eksportują FABRYKĘ (asynccontextmanager), każdy plik definiuje własny czterolinijkowy fixture. Zero `# noqa` w całym podziale. Weryfikowane na obu wersjach ruffa. ZERO CONFTESTÓW — zasada repo zachowana. Markery i skipif przeniesione dosłownie do każdego pliku (nie dziedziczą się przez import helpera); integracyjne niosą komplet integration+ffmpeg+skipif. capture i selects_wiring dostały bespoke strażniki szwów, bo ich źródła to moduły siostrzane (nie pakiety) — SeamGuard guarduje pakiety. NAPRAWIONE PRZEZ ORKIESTRATORA: test_render_optional.py (plik pre-existing, poza zakresem agentów) importował FakeTts i TwoSecondTts z usuniętego test_render.py. Żaden agent nie mógł tego wychwycić w izolacji — importer był w cudzym pliku. Wykryte globalnym collect-only na całym drzewie. TwoSecondTts przeniesiony do _render_helpers (współdzielony przez narration i optional), import przecelowany. Suite: 1529 unit + 51 integration passed, 1 skipped — bez zmian. ruff (0.15 i 0.9.2) i preview blank-lines czysto. Po tym PR: jedyny pozostały dług to bramki (faza 6) i opcjonalny .js (faza 7). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0134rSCftVxsMVL8sngceT7A
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ostatni dług rozmiarowy w
.py. Osiem plików testowych podzielonych równolegle (osiem agentów), lustrzanie do pakietów źródłowych powstałych w fazach 1–4.test_render.pytest_mux.pytest_recorder_select.pytest_compile.pytest_capture.pytest_selects_wiring.pytest_selects_compile_render.pytest_popup_compile_render.pyZero plików testowych ponad 600 linii. Największy pozostały: 591 (
test_source.py, nietknięty, zawsze był pod limitem).Weryfikacja node-ID, nie liczby
Każdy z ośmiu agentów porównał zbiór identyfikatorów węzłów przed i po — nie samą liczbę, bo para zgubiony+zduplikowany zachowuje licznik. Wszystkie osiem: diff pusty.
Wzorzec fabryki zamiast fixture
Nazwa współdzielonego fixture'u pojawia się też jako parametr testu, więc
from ._helpers import pagedaje F811 na każdej funkcji — a# noqa: F401tego nie ucisza. Obejście przez alias przechodzi na ruff 0.15 i pada na przypiętym 0.9.2.Helpery eksportują fabrykę (
@asynccontextmanager), każdy plik definiuje własny czterolinijkowy fixture. Zero# noqaw całym podziale, weryfikowane na obu wersjach ruffa.Zero conftestów — zasada repo zachowana. Markery i
skipifprzeniesione dosłownie do każdego pliku (nie dziedziczą się przez import helpera); pliki integracyjne niosą kompletintegration+ffmpeg+skipif.captureiselects_wiringdostały bespoke strażniki szwów, bo ich źródła to moduły siostrzane (nie pakiety) —SeamGuardguarduje pakiety.Wpadka wykryta i naprawiona przez orkiestratora
test_render_optional.py— plik pre-existing, poza zakresem wszystkich agentów — importowałFakeTtsiTwoSecondTtsz usuwanegotest_render.py.Żaden agent nie mógł tego wychwycić w izolacji: importer był w cudzym pliku, którego nie wolno mu było dotykać, a jego własne node-ID i własny suite były zielone. Wykryte dopiero globalnym
collect-onlyna całym drzewie — jedynym miejscem, z którego widać szew między niezależnie wykonanymi zadaniami.TwoSecondTtsprzeniesiony do_render_helpers(współdzielony przeznarrationioptional), import przecelowany.Testy
1529 unit + 51 integration passed, 1 skipped — bez zmian wobec baseline'u.
ruff check(0.15 i 0.9.2) i preview blank-lines — czysto.Po tym PR jedyny pozostały dług to bramki (Faza 6) i opcjonalny
.js(Faza 7).🤖 Generated with Claude Code
https://claude.ai/code/session_0134rSCftVxsMVL8sngceT7A