Repository navigation
Support Pytest 9 passing-subtest JUnit accounting without accepting incomplete scans #14
Description
CONTINUATION-PYTEST9-SUBTEST-JUNIT-COUNT-20261011
User continuation via Willman discovered a bounded dependency compatibility issue on immutable Testlesssource3a030489c0f3dcb47afaf118547d344ee3969b3c. Owning parent WillmanPLF17303/Issue193. NativeWillman205/PR227 exactd71/base87 now has protectedOneDev888PASS/160subtests/14existingSKIP/10DESELECT290.11s. Own full immutableSDK/executor qualification independently passed888tests/160subtests288.15s and generated freshPytest9.1.1 JUnit with junit_family=xunit1, returncode0. XML has902parent testcaseelements (888passed+14skipped), zero failures/errors; suite.tests1062 includes160passing subtest reports that do not create additional testcase elements. Testless collect.pytest_runner._parse_junit rejects this fresh successful report as incomplete test outcomes; public run_pytest calls that parser, so Pytest9 subtest scan compatibility is blocked. No successfulTestless outcome validation or coverage is claimed. Do not rewrite rawXML counters or trust coverage as outcomes. Prior sourcePLF010/runtimePLF17162 are delivered and must not be reopened.
Acceptance: fresh bounded nativeowner/worktree/current editing admission and independentpublication before sourcechange. Support verified Pytest9 passing-subtest accounting without weakening rejection of truly incomplete/corrupt/truncated reports, genuine assertions/collection/no-tests failures, old artifacts, missing testidentities or contradictory declaredcounts. Preserve parent-level identities and actual measured subtest evidence; do not invent childidentities. Add positive realPytest9 two-subtest fixture plus malformed/truncated/failed controls through public scan; benchmark fixture-level selection usingTestless. No global package upgrade/runtimeactivation or competing sourcewriter by this request.
Evidence: /home/tom/github/paxlet-com/willman/.subactor/receipts/autonomy-20261011/continuation-pr227-testless-outcome-parser.log, continuation-pr227-full-sdk-v3-overlay.json/log, continuation-pr227-full-sdk-v3-queue.json; rawfreshXML /home/tom/github/paxlet-com/willman/.subactor/cache/continuation-pr227-full-sdk-v3-report/junit.xml.
Strategy Metadata:
- repository: semcod/testless
- planfile_id: semcod/testless:3192fdb7a988d964:PLF-17163
CONTINUATION-PYTEST9-SUBTEST-JUNIT-COUNT-20261011
User continuation via Willman discovered a bounded dependency compatibility issue on immutable Testlesssource3a030489c0f3dcb47afaf118547d344ee3969b3c. Owning parent WillmanPLF17303/Issue193. NativeWillman205/PR227 exactd71/base87 now has protectedOneDev888PASS/160subtests/14existingSKIP/10DESELECT290.11s. Own full immutableSDK/executor qualification independently passed888tests/160subtests288.15s and generated freshPytest9.1.1 JUnit with junit_family=xunit1, returncode0. XML has902parent testcaseelements (888passed+14skipped), zero failures/errors; suite.tests1062 includes160passing subtest reports that do not create additional testcase elements. Testless collect.pytest_runner._parse_junit rejects this fresh successful report as incomplete test outcomes; public run_pytest calls that parser, so Pytest9 subtest scan compatibility is blocked. No successfulTestless outcome validation or coverage is claimed. Do not rewrite rawXML counters or trust coverage as outcomes. Prior sourcePLF010/runtimePLF17162 are delivered and must not be reopened.
Acceptance: fresh bounded nativeowner/worktree/current editing admission and independentpublication before sourcechange. Support verified Pytest9 passing-subtest accounting without weakening rejection of truly incomplete/corrupt/truncated reports, genuine assertions/collection/no-tests failures, old artifacts, missing testidentities or contradictory declaredcounts. Preserve parent-level identities and actual measured subtest evidence; do not invent childidentities. Add positive realPytest9 two-subtest fixture plus malformed/truncated/failed controls through public scan; benchmark fixture-level selection usingTestless. No global package upgrade/runtimeactivation or competing sourcewriter by this request.
Evidence: /home/tom/github/paxlet-com/willman/.subactor/receipts/autonomy-20261011/continuation-pr227-testless-outcome-parser.log, continuation-pr227-full-sdk-v3-overlay.json/log, continuation-pr227-full-sdk-v3-queue.json; rawfreshXML /home/tom/github/paxlet-com/willman/.subactor/cache/continuation-pr227-full-sdk-v3-report/junit.xml.
CONTINUATION-OFFLINE-DEPENDENCY-REGRESSIONS-20261011T2100
Bounded public-path regression executed by real Willman task 851a5d86b31e4f76baa7d36c1c7fe436 against frozen published Testless 3a03048, using existing target .venv Pytest9.0.3. A real run_pytest scan executes one passing parent with three passing built-in subtests. Original fresh xunit1 XML reports suite tests=4 but only one parent testcase, failures=0/errors=0. Its raw XML is preserved without normalization: SHA 90fa4d300277c31db6bec5f799a03fa98d14ca977bf38a87e849561068f2030b. The public scan rejects the complete passing run at _parse_junit; it must not be called a successful Testless scan or coverage publication. This extends the prior full Willman Pytest9.1.1 1062/902 report to a minimal real producer fixture.
27 existing outcome tests PASS, 1 strict XFAIL retains the failing desired public scan contract (63.07s). Existing controls verify failed/empty/malformed/unidentified/partial/stale outcomes, nonzero child exit, coverage-export failure, atomic publication and preservation of prior complete snapshots. No source applied, XML counts untouched, no invented child identities or claimed coverage.
Next: admitted owner supports authoritative parent outcomes and independently proven subtest accounting in the public scan, with real passing-subtest positive and failed/skipped/truncated/fabricated-count controls. Preserve existing fail-closed and atomic publication contracts; do not merely loosen the equality check. Reproducer: owned fixture .subactor/cache/continuation2100-dependencies/testless/tests/test_continuation14_real_subtests.py, SHA 7478ce3a3c2e8ba5889f91ebf39c3ea8ba69f7eb3e97bdf1d161330add1b22a5; raw continuation2100-testless-subtests.xml and continuation2100-testless-tests.{log,xml} receipts. No editing grant inferred from this diagnostic.
CONTINUATION-TESTLESS-PROVEN-SUBTEST-ACCOUNTING-20261011T2155
Accepted latest user continuation: resume existing planned work through Willman, execute and verify appropriate tests, report progress. Existing PLF-17163/Issue14 remains the Testless owner; primary Willman native197 is unchanged and unadmitted, no competing native writer allocated.
Prepared a four-file UNAPPLIED source/test proposal against published Testless 3a03048. Before: fresh Pytest9 JUnit reports tests=4 and one parent testcase for one parent with three passing built-in subtests; public run_pytest rejects it as incomplete. After: a child observer records real parent/SubtestReport outcomes through pytest hooks, binds its evidence to the fresh raw JUnit SHA256 and this run's nonce, and validates every observed parent, completion and count against JUnit. Parent identities remain unchanged and coverage contexts still match those parents. No child test identities are invented; raw JUnit counters/content are not normalized. Evidence is atomically included with coverage only after complete validation. Present evidence is checked even if a mutated report has counters reset to its testcase count; per-suite contradictions cannot cancel out globally. Normal mock/legacy reports still require exact counts without a waiver. The Pytest8 plain-report fallback remains in source; older-version/platform verification belongs to native delivery, not the measured9.x claim here.
Actual Willman baseline24f96355: one intended desired public-scan regression FAIL, one plain-parent control PASS (20.60s). Final candidate9e059719:71 PASS in103.22s across outcome, subtest-evidence, coverage-loader and collector suites. This includes real passing, skipped, failed and parameterized-class subtests, measured coverage parent association, no-tests/collection/assertion failure controls, stale artifacts, nonce/digest/identity/count mismatches, missing/duplicate/incomplete parent observations, corrupt ledger JSON/types, normalized counters and opposing suite counts, atomic publication and preservation of prior complete scans. Initial candidate3ae79924 was64PASS/one child-integration failure because isolated plugin autoload omitted pytest_cov; invocation v2 explicitly loads pytest_cov, first69PASS and final71PASS retained. No shared runtime upgrade.
Separate actual public scan tasks5009396a and56b364b1 are DONE for Pytest9.0.3 and9.1.1 respectively. Both independently verify raw tests4/case1, measured3 passing subtests, one actual parent identity, unchanged raw JUnit digest bound to nonce, and matching measured coverage context. Version9.1.1 used a private uv environment pinned with pytest-cov7.1.0, coverage7.14.0 and pydantic2.13.4; pipcheckPASS. Primary Willman lacks pytest_cov in its ordinary environment, so the fixture did not mutate it or claim protected executor deployment. These are operational fixture scans, not native CI/runtime activation.
Patch SHA256 48d8343ce33d818f08e97b3c80d29192d9b30d1f33e01584759e6b3d09267df8; git apply --check PASS on unchanged current3a; all four Python files parse. Artifact: /home/tom/github/paxlet-com/willman/.subactor/receipts/autonomy-20261011/continuation2155-testless14-subtest-evidence.patch. Qualification and two public-scan JSON/XML receipts use continuation2155-testless14-* in that directory. No target source edits, local source commits, pushes, PR, trusted review, merge or deployment; only ignored isolated snapshots.
Next: existing owner obtains a fresh native allocation and protected fenced editing admission on exact current base, applies/revalidates the patch, runs complete required native/platform/version gates and obtains independent Validator approval and protected merge. Do not reopen delivered PLF010 or completed OneDev553. Preserve original raw report and unsuccessful harness evidence; successful local tests never grant source or publication authority.
CONTINUATION-TESTLESS-PYTEST8-COMPATIBILITY-20261011T2223
Accepted user continuation: continue current tasks through Willman, verify tests and report progress. Existing Testless PLF17163/Issue14 remains the owner; primary Willman native197/PLF17310 remains blocked on protected handoff/current-base enrollment. No competing implementation writer.
Completed the remaining older-version compatibility check for the SAME four-file proposal SHA25648d8343ce33d818f08e97b3c80d29192d9b30d1f33e01584759e6b3d09267df8 against Testless3a030489c0f3dcb47afaf118547d344ee3969b3c. All candidate source/test bytes and patch remain unchanged; no new producer implementation delta. This extends earlier71PASS and actual Pytest9.0.3/9.1.1 subtest scans without rerunning unchanged9.x work.
Real Willman private environment setup tasks35da7e72/4a9c9bec pin Python3.11.15 (declared minimum minor), Pytest8.0.0/pytest-cov5.0.0 (declared minimum versions) and Pytest8.4.2/pytest-cov7.1.0, with coverage7.14.0 and existing target-compatible click/pydantic/PyYAML/networkx versions. uv pipcheckPASS in both; no shared runtime upgrade/deployment. Final qualification tasks6a6cf03c/72d48537:41PASS/4.24s and41PASS/4.75s respectively across existing public-outcome, coverage-loader and collector suites, zero failures/errors and no skipped/filtered tests.
Two initial minimum-version harness failures are retained: e4721d35 and31c30084 each40PASS/one failed real child. Existing -c /dev/null fixture with Pytest8.0.0 traversed ancestor directories and hit denied virtual/private filesystem paths; rootdir alone did not prevent it. Inspection of the installed published _pytest.main.Session.collect proves ancestor trimming is controlled by confcutdir. The bounded fixture invocation now explicitly sets PYTEST_ADDOPTS="-p pytest_cov --rootdir=. --confcutdir=.", both paths evaluated at each child's cwd. This changes fixture isolation only; no permission widening, hidden failed tests, collector code monkeypatch, test deletion, assertion change or product source modification. Future native minimum-version validation should retain these explicit collection boundaries (or an equivalent correctly scoped fixture).
Separate actual public scans c258d9a4/ff81cbc2 are DONE on8.0.0 and8.4.2 with Python3.11.15. Each reports two actual parent identities, one passed/one skipped, raw suite tests2/case2, matching measured coverage context, unchanged raw JUnit digest and no invented or required9.x subtest evidence. They substantiate the plain-parent fallback under the older runtimes. Original9.x passing/skipped/failed-subtest and nonce/digest/truncation controls remain qualified under their recorded exact source.
Compatibility bundle: /home/tom/github/paxlet-com/willman/.subactor/receipts/autonomy-20261011/continuation2223-compat-qualification.json; per-version dependencies/tests/public-demo JSON/XML receipts use continuation2223-compat-800/842-* there. Original proposal qualification links this bundle. No source apply/commit/push/PR/merge/trusted review/deployment; local compatibility is not protected CI approval. Existing owner still needs native admission, exact-current-base required platform/governance gates and independent Validator publication. Preserve completed553 and source ownership constraints.
Activity