Repository navigation
chore(deps-dev): bump pytest from 9.0.3 to 9.1.1 - #9095
Merged
Merged
Conversation
Contributor
|
@dependabot rebase |
dependabot
Bot
force-pushed
the
dependabot/pip/develop/pytest-9.1.1
branch
from
June 25, 2026 23:12
7a8aa93 to
7e8d8b2
Compare
dependabot
Bot
force-pushed
the
dependabot/pip/develop/pytest-9.1.1
branch
from
June 29, 2026 23:01
7e8d8b2 to
0780bc6
Compare
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.3 to 9.1.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@9.0.3...9.1.1) --- updated-dependencies: - dependency-name: pytest dependency-version: 9.1.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
force-pushed
the
dependabot/pip/develop/pytest-9.1.1
branch
from
June 29, 2026 23:43
0780bc6 to
4f846d1
Compare
seshubaws
approved these changes
Jul 31, 2026
seshubaws
added this pull request to the merge queue
Jul 31, 2026
This was referenced Aug 14, 2026
roger-zhangg
added a commit
that referenced
this pull request
Aug 17, 2026
sync-code and sync-watch have failed on every scheduled run since pytest was bumped 9.0.3 -> 9.1.1 (#9095, 2026-07-31). Latest: 37 passed, 52 errors. The last pre-bump run passed with 89 passed, 1 rerun. Reproducible in ten lines, no AWS: class TestFixt: @pytest.fixture(scope="class") def fixt(self): yield def test_1(self, fixt): pass def test_2(self, fixt): pass pytest 9.0.3 -> 2 passed pytest 9.1.1 -W error -> 2 errors 1. pytest 9.1 deprecated class-scoped fixtures declared as instance methods. 2. `filterwarnings = error` in pytest.ini makes that a setup failure on the first test of every affected class. 3. pytest then raises its own internal AssertionError ("assert not self._finalizers", fixtures.py:1221) for the remaining tests in the class -- upstream pytest-dev/pytest#14775, still open. Root cause is fixtures.py:1147: finish() early-returns when cached_result is None without clearing _finalizers. 4. `--reruns 3` reports only the final attempt, so the real warning is discarded and only the internal AssertionError survives. That is why the CI logs contain zero occurrences of the actual cause. Counts line up: 52 errors x 3 reruns = 156 reruns (sync-watch: 12 x 3 = 36). Suppressing is safe here specifically: these fixtures assign to the class (`TestSyncCodeBase.stack_name = ...`), not to `self`, so the hazard the deprecation warns about -- attributes set on self being invisible to tests -- does not apply. Marked on the three classes that declare these fixtures rather than in pytest.ini, so the rest of the suite still fails on this warning. A class mark rather than a module-level pytestmark because TestSyncCodeBase is subclassed from other modules (test_sync_build_in_source.py, test_sync_adl.py) and a module mark would not reach them, which is why one base class took out both sync-code and sync-watch. Converting the fixtures is required before pytest 10 and is deliberately not done here: execute_infra_sync derives its stack name from self._method_to_stack_name(self.id()), and unittest's id() needs an instance, so it changes live CloudFormation stack names. Testing: verified against the repo's real pytest.ini that the same parameterized class-scoped shape goes 6 errors -> 6 passed with the mark, and that an unmarked one still errors, so suite-wide protection is intact. Confirmed pytest resolves the mark through the MRO for subclasses that carry their own marks. tests/integration/{sync,logs,traces} collect 266 tests. black and ruff clean.
roger-zhangg
added a commit
to madhavdonthula1/aws-sam-cli
that referenced
this pull request
Aug 19, 2026
* tests: unblock nightly sync integ tests on pytest 9.1 sync-code and sync-watch have failed on every scheduled run since pytest was bumped 9.0.3 -> 9.1.1 (aws#9095, 2026-07-31). Latest: 37 passed, 52 errors. The last pre-bump run passed with 89 passed, 1 rerun. Reproducible in ten lines, no AWS: class TestFixt: @pytest.fixture(scope="class") def fixt(self): yield def test_1(self, fixt): pass def test_2(self, fixt): pass pytest 9.0.3 -> 2 passed pytest 9.1.1 -W error -> 2 errors 1. pytest 9.1 deprecated class-scoped fixtures declared as instance methods. 2. `filterwarnings = error` in pytest.ini makes that a setup failure on the first test of every affected class. 3. pytest then raises its own internal AssertionError ("assert not self._finalizers", fixtures.py:1221) for the remaining tests in the class -- upstream pytest-dev/pytest#14775, still open. Root cause is fixtures.py:1147: finish() early-returns when cached_result is None without clearing _finalizers. 4. `--reruns 3` reports only the final attempt, so the real warning is discarded and only the internal AssertionError survives. That is why the CI logs contain zero occurrences of the actual cause. Counts line up: 52 errors x 3 reruns = 156 reruns (sync-watch: 12 x 3 = 36). Suppressing is safe here specifically: these fixtures assign to the class (`TestSyncCodeBase.stack_name = ...`), not to `self`, so the hazard the deprecation warns about -- attributes set on self being invisible to tests -- does not apply. Marked on the three classes that declare these fixtures rather than in pytest.ini, so the rest of the suite still fails on this warning. A class mark rather than a module-level pytestmark because TestSyncCodeBase is subclassed from other modules (test_sync_build_in_source.py, test_sync_adl.py) and a module mark would not reach them, which is why one base class took out both sync-code and sync-watch. Converting the fixtures is required before pytest 10 and is deliberately not done here: execute_infra_sync derives its stack name from self._method_to_stack_name(self.id()), and unittest's id() needs an instance, so it changes live CloudFormation stack names. Testing: verified against the repo's real pytest.ini that the same parameterized class-scoped shape goes 6 errors -> 6 passed with the mark, and that an unmarked one still errors, so suite-wide protection is intact. Confirmed pytest resolves the mark through the MRO for subclasses that carry their own marks. tests/integration/{sync,logs,traces} collect 266 tests. black and ruff clean. * tests: anchor the pytest 9.1 ignore on the warning category Review feedback: keying the filter on the message prose means it stops applying if upstream rewords the warning, and that failure is silent. Confirmed the failure mode rather than assuming it. `filterwarnings` marks reach warnings.filterwarnings, where the message becomes re.compile(msg, re.I).match(...), so a stale phrase simply never matches: with a deliberately reworded pattern the probe goes back to 4 errors / 8 reruns showing only the bare "assert not self._finalizers", exactly the opaque failure this change exists to prevent. Also checked the suggested compromise of combining message and category. It does not help -- warnings.filterwarnings requires both fields to match, so the combined form is as brittle as message-only: stale message, message only -> error stale message, message + category -> error stale message, category only -> passes So the filter is now category-only. `pytest.PytestRemovedIn10Warning` is exported by pytest 9.1.1, and this matches existing convention: test_build_cmd.py:58 uses "ignore::ResourceWarning" and pytest.ini has six ignore::Category entries. The tradeoff is that it also suppresses the other eight PytestRemovedIn10Warning messages in pytest 9.1.1 inside these three classes. That is acceptable: they cover config.inicfg, pytest.console_main, FixtureDef.has_location, fixture baseid/nodeid, parsefactories nodeid, monkeypatch.syspath_prepend and --pastebin -- plugin and config level APIs these integration test classes do not touch. Testing: unmarked probe still errors (6 errors, 18 rerun) so suite-wide protection is intact; the category-marked equivalent passes. tests/integration/{sync,logs,traces} collect 266 tests. black and ruff clean.
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.
Bumps pytest from 9.0.3 to 9.1.1.
Release notes
Sourced from pytest's releases.
... (truncated)
Commits
cf470ecPrepare release version 9.1.1e0c8ce6Merge pull request #14625 from pytest-dev/patchback/backports/9.1.x/a07c31a97...1b82d16Merge pull request #14624 from pytest-dev/patchback/backports/9.1.x/b375b79ec...501c4bcMerge pull request #14596 from bluetech/doc-classmethodb61f588Merge pull request #14622 from chrisburr/fix-14608-initial-conftest-test-subdir9a567e0[automated] Update plugin list (#14617) (#14618)ef8b299Merge pull request #14620 from pytest-dev/patchback/backports/9.1.x/680f9f3ed...66abd07Merge pull request #14220 from bysiber/fix-stale-iexp-raisesgroup79fbf93Merge pull request #14612 from pytest-dev/patchback/backports/9.1.x/974ed48b6...0d312ebMerge pull request #14611 from bluetech/parametrize-argvalues-typing