Repository navigation
build: qualify pytest 9.2 while preserving prior coverage - #364
Merged
Merged
Conversation
Reconstruct the dependency intent of PR #345 on current main, with synchronized execution pins and explicit old/new runtime qualification. Signed-off-by: Minxi Hou <houminxi@gmail.com>
Keep all closure assertions while restoring OS functions before pytest 9.2 reports the test result. Signed-off-by: Minxi Hou <houminxi@gmail.com>
HouMinXi
marked this pull request as ready for review
November 2, 2026 10:54
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
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.
Scope
Reconstructs the pytest 9.1.1 → 9.2.0 dependency intent of #345 on current main
7ca84b7, without taking that old PR's unrelated history/tree. #345 is left open and untouched; this is a separately qualified draft, not a request to merge the old diff.No production algorithm changes, new skip allowances, timeout increases, matrix reductions, or permission changes. The only production delta is the additional qualified runtime tuple. Existing 9.1.1 support remains.
Evidence
Remaining validation
Exact-head remote Linux, wheel, Ruff and CodeQL must complete; local targeted evidence is not claimed as a full CI pass. Native/full-toolchain execution was not run locally. The sidecar adds installation work within unchanged setup timeouts. A separate local composition check with #344's clean setup-python update is being performed.
Upstream behavior reference: pytest 9.2 changelog.
First CI finding and scoped correction
Head
65d0185passed wheel, Ruff, CodeQL, process-contracts and three service-free shards. Linux correctly failed ontest_descriptor_closes_on_every_branch[fstat_error]: the test kept a globalos.fstatfault active until fixture teardown, which pytest 9.2's fd capture itself uses. The failure was independently reproduced locally (one failure).Head
c3318fd81bea4bbc43a9d33daec0a880fb67b24blimits only that test's fault-injection lifetime withmonkeypatch.context(). All six branches and descriptor count/real EBADF closure assertions are unchanged. The whole conventions module passed 90 tests, two pre-existing skips, full-tree Ruff still passed 805 files, and six independent delta reviews plus CE helper checks found no blockers. The previous 611-test evidence remains attributed to the earlier full-scope source; this new head must pass its own remote CI.Final exact-head CI result
Head
c3318fd81bea4bbc43a9d33daec0a880fb67b24bhas now passed Linux tests, installed wheel controls, Ruff, and CodeQL. All seven Linux jobs succeeded; the final gate explicitly verified 34,381 full-selection nodes across all seven phases. The fstat fixture repair passed in the actual full shard.No unresolved blocker remains from this upgrade review. This PR remains a draft and has not been merged or approved; #345 remains untouched. No additional optimization or dependency work is included.