mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-10 19:47:12 +01:00
_challenge_support.py 402 -> 237. _pytest_clean and _patch_and_test go to _pytest_runner.py with the subprocess/os/sys imports they solely used; _stream_verdict and _parse_verdict go to _verdict.py with rich's Live. code_tutor patches by absolute string rather than a MOD constant, so the seam cost 15 per-name rewrites instead of one sed. Two intermediate failures caught by running it: the test modules import the moved names directly, and five patch strings still named the old module. Pass count is 216 before and after. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011w2Pj4Ek3ZNMQVYcFHgXDY
20 lines
1.8 KiB
JSON
20 lines
1.8 KiB
JSON
{
|
|
"title": "Split code_tutor/_challenge_support.py under the 250-line cap",
|
|
"objective": "Bring python_pkg/code_tutor/_challenge_support.py (402 lines) under the repo-wide 250-line cap by moving the isolated pytest runner and the LLM verdict streaming into their own modules.",
|
|
"acceptance_criteria": [
|
|
"_challenge_support.py, _pytest_runner.py and _verdict.py are each at most 250 lines.",
|
|
"The code_tutor suite still reports exactly 216 passing tests -- the same count as before the split, proving no test was dropped or silently skipped.",
|
|
"The package keeps 100% branch coverage of the code_tutor source modules.",
|
|
"Every patch string naming a moved function or one of its plain-import collaborators is repointed at the module the code actually lives in now. code_tutor uses absolute patch strings rather than a MOD constant, so this is a per-string edit and cannot be done with one substitution.",
|
|
"_challenge.py imports _patch_and_test, _pytest_clean, _parse_verdict and _stream_verdict back, because test_challenge_part3.py patches the first two on _challenge.",
|
|
"No assertion is changed and no test is deleted, skipped or weakened.",
|
|
"No suppression is added and no coverage exclusion is introduced."
|
|
],
|
|
"out_of_scope": [
|
|
"Changing what any test asserts, or any pytest invocation flags.",
|
|
"Splitting _challenge.py, cli.py, _analyzer.py or the code_tutor test modules, which are separate commits.",
|
|
"Adding a re-export shim in _challenge_support; importers point at the new modules directly to keep the dependency direction one-way."
|
|
],
|
|
"verifier": "PYTHONPATH=. python3 -m pytest python_pkg/code_tutor/tests -q (expects exactly 216 passed), plus an import-time attribute probe over the four modules, plus pre-commit run --files on the touched files."
|
|
}
|