Skip to content

Bump pytest from 8.3.4 to 9.0.3#61

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pytest-9.0.3
Open

Bump pytest from 8.3.4 to 9.0.3#61
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pytest-9.0.3

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Apr 14, 2026

Bumps pytest from 8.3.4 to 9.0.3.

Release notes

Sourced from pytest's releases.

9.0.3

pytest 9.0.3 (2026-04-07)

Bug fixes

  • #12444: Fixed pytest.approx which now correctly takes into account ~collections.abc.Mapping keys order to compare them.

  • #13634: Blocking a conftest.py file using the -p no: option is now explicitly disallowed.

    Previously this resulted in an internal assertion failure during plugin loading.

    Pytest now raises a clear UsageError explaining that conftest files are not plugins and cannot be disabled via -p.

  • #13734: Fixed crash when a test raises an exceptiongroup with __tracebackhide__ = True.

  • #14195: Fixed an issue where non-string messages passed to unittest.TestCase.subTest() were not printed.

  • #14343: Fixed use of insecure temporary directory (CVE-2025-71176).

Improved documentation

  • #13388: Clarified documentation for -p vs PYTEST_PLUGINS plugin loading and fixed an incorrect -p example.
  • #13731: Clarified that capture fixtures (e.g. capsys and capfd) take precedence over the -s / --capture=no command-line options in Accessing captured output from a test function <accessing-captured-output>.
  • #14088: Clarified that the default pytest_collection hook sets session.items before it calls pytest_collection_finish, not after.
  • #14255: TOML integer log levels must be quoted: Updating reference documentation.

Contributor-facing changes

  • #12689: The test reports are now published to Codecov from GitHub Actions. The test statistics is visible on the web interface.

    -- by aleguy02

9.0.2

pytest 9.0.2 (2025-12-06)

Bug fixes

  • #13896: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.

    You may enable it again by passing -p terminalprogress. We may enable it by default again once compatibility improves in the future.

    Additionally, when the environment variable TERM is dumb, the escape codes are no longer emitted, even if the plugin is enabled.

  • #13904: Fixed the TOML type of the tmp_path_retention_count settings in the API reference from number to string.

  • #13946: The private config.inicfg attribute was changed in a breaking manner in pytest 9.0.0. Due to its usage in the ecosystem, it is now restored to working order using a compatibility shim. It will be deprecated in pytest 9.1 and removed in pytest 10.

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.3.4...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Apr 14, 2026
Comment thread requirements.txt
Comment on lines 1 to +2
eth-ape==0.8.48
pytest==8.3.4
pytest==9.0.3
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 pytest==9.0.3 is incompatible with eth-ape==0.8.48, which declares a hard dependency constraint of pytest<9.0,>=8.0. Running pip install -r requirements.txt with these two pinned versions will fail with a ResolutionImpossible error — the requirements.txt as changed is uninstallable.

Extended reasoning...

What the bug is and how it manifests

eth-ape==0.8.48 ships with a hard upper-bound on pytest, declaring pytest<9.0,>=8.0 in its requires_dist metadata on PyPI. This PR bumps pytest from 8.3.4 to 9.0.3. Because 9.0.3 satisfies >=9.0, it directly violates the strict <9.0 ceiling set by eth-ape. pip's dependency resolver treats this as a conflict and cannot produce a valid environment.

The specific code path that triggers it

When a user (or CI) runs pip install -r requirements.txt, pip collects both eth-ape==0.8.48 and pytest==9.0.3 as direct requirements, then resolves their transitive dependencies. eth-ape's metadata adds the constraint pytest<9.0 to the resolution set. pytest==9.0.3 does not satisfy <9.0, so pip raises a ResolutionImpossible error and the install fails entirely — no packages are installed.

Why existing code doesn't prevent it

Dependabot only inspects the direct version bump it is proposing (pytest 8.3.4 → 9.0.3) and checks for known compatibility scores for that one package. It does not automatically cross-check the transitive dependency constraints declared by other pinned packages in the same requirements file. There is no pip-compile lock file or pre-install CI step that would catch this before the PR is merged.

What the impact would be

Any developer, CI runner, or deployment pipeline that clones the repo at this commit and runs pip install -r requirements.txt will get a hard failure. The repository will be left in a broken state where its declared test/dev environment cannot be installed at all.

How to fix it

Two options: (1) Keep pytest pinned below 9.0 (e.g., pytest==8.3.4 or pytest>=8.0,<9.0) until eth-ape publishes a release that lifts the upper-bound; or (2) upgrade eth-ape to a version whose requires_dist permits pytest>=9.0 and update that pin in requirements.txt at the same time as this pytest bump.

Step-by-step proof

  1. requirements.txt after this PR: eth-ape==0.8.48 and pytest==9.0.3.
  2. Fetch eth-ape 0.8.48 metadata from PyPI: https://pypi.org/pypi/eth-ape/0.8.48/json → requires_dist includes pytest<9.0,>=8.0.
  3. pip attempts to resolve: direct requirement pytest==9.0.3 must satisfy <9.0 from eth-ape. 9.0.3 < 9.0 is false.
  4. pip emits: ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/stable/topics/dependency-resolution/.
  5. No packages are installed; the environment is broken.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants