Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jun 6, 2025

Bumps the testing group with 1 update: pytest.

Updates pytest from 8.3.5 to 8.4.0

Release notes

Sourced from pytest's releases.

8.4.0

pytest 8.4.0 (2025-06-02)

Removals and backward incompatible breaking changes

  • #11372: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.

  • #12346: Tests will now fail, instead of raising a warning, if they return any value other than None.

  • #12874: We dropped support for Python 3.8 following its end of life (2024-10-07).

  • #12960: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.

    See the docs <yield tests deprecated>{.interpreted-text role="ref"} for more information.

Deprecations (removal in next major release)

  • #10839: Requesting an asynchronous fixture without a [pytest_fixture_setup]{.title-ref} hook that resolves it will now give a DeprecationWarning. This most commonly happens if a sync test requests an async fixture. This should have no effect on a majority of users with async tests or fixtures using async pytest plugins, but may affect non-standard hook setups or autouse=True. For guidance on how to work around this warning see sync-test-async-fixture{.interpreted-text role="ref"}.

New features

  • #11538: Added pytest.RaisesGroup{.interpreted-text role="class"} as an equivalent to pytest.raises{.interpreted-text role="func"} for expecting ExceptionGroup{.interpreted-text role="exc"}. Also adds pytest.RaisesExc{.interpreted-text role="class"} which is now the logic behind pytest.raises{.interpreted-text role="func"} and used as parameter to pytest.RaisesGroup{.interpreted-text role="class"}. RaisesGroup includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulating except* <except_star>{.interpreted-text role="ref"}. See assert-matching-exception-groups{.interpreted-text role="ref"} and docstrings for more information.

  • #12081: Added capteesys{.interpreted-text role="fixture"} to capture AND pass output to next handler set by --capture=.

  • #12504: pytest.mark.xfail{.interpreted-text role="func"} now accepts pytest.RaisesGroup{.interpreted-text role="class"} for the raises parameter when you expect an exception group. You can also pass a pytest.RaisesExc{.interpreted-text role="class"} if you e.g. want to make use of the check parameter.

  • #12713: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.

    This lets users still see condensed summary output of failures for quick reference in log files from job outputs, being especially useful if non-condensed output is very verbose.

  • #12749: pytest traditionally collects classes/functions in the test module namespace even if they are imported from another file.

    For example:

    # contents of src/domain.py
    class Testament: ...
    contents of tests/test_testament.py
    from domain import Testament
    def test_testament(): ...

    In this scenario with the default options, pytest will collect the class [Testament]{.title-ref} from [tests/test_testament.py]{.title-ref} because it starts with [Test]{.title-ref}, even though in this case it is a production class being imported in the test module namespace.

    This behavior can now be prevented by setting the new collect_imported_tests{.interpreted-text role="confval"} configuration option to false, which will make pytest collect classes/functions from test files only if they are defined in that file.

... (truncated)

Commits
  • 315b3ae Prepare release version 8.4.0
  • 1498ba3 Merge pull request #13467 from pytest-dev/towncrier-create
  • e4389ac Remove resultlog from the docs (#13465)
  • 64b2301 scripts/release: add missing build to towncrier call
  • 4c205cf testing/plugins_integration: update Django (#13463)
  • 4dcbcc9 Merge pull request #13458 from pytest-dev/dup-param-error
  • 5293016 Merge pull request #13459 from pytest-dev/pyright-minor-fixes
  • 7a48181 Add pyright configuration
  • 9fc6db9 pytester: avoid confusing x self parameter
  • 9aa198b mark/expression: fix self -> cls
  • Additional commits viewable in compare view

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Summary by Sourcery

Build:

  • Upgrade pytest from 8.3.5 to 8.4.0 in pyproject.toml

Bumps the testing group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.3.5 to 8.4.0
- [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.5...8.4.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies maintenance General maintenance of the repo (libraries, cicd, etc) labels Jun 6, 2025
@dependabot dependabot bot requested a review from a team as a code owner June 6, 2025 00:33
@dependabot dependabot bot requested review from germa89 and pyansys-ci-bot June 6, 2025 00:33
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Jun 6, 2025

Reviewer's Guide

This PR bumps the pytest dependency from 8.3.5 to 8.4.0 in the project configuration, updating the test toolchain to the latest release.

Sequence Diagram: Pytest 8.4.0 Handling of Tests Returning Non-None Values

sequenceDiagram
    actor D as Developer
    participant P as Pytest
    participant TF as TestFunction

    D->>P: Run test_example
    P->>TF: Execute test_example()
    TF-->>P: Return "some_value"
    alt Pytest < 8.4.0 Behavior
        P-->>D: Warning: Test returned value
        P-->>D: Test continues or is marked accordingly (e.g., warning)
    else Pytest >= 8.4.0 Behavior
        P-->>D: Error: Test returned value
        P-->>D: Test FAILED
    end
Loading

Sequence Diagram: Pytest 8.4.0 Handling of Async Tests without Suitable Plugin

sequenceDiagram
    actor D as Developer
    participant P as Pytest
    participant AT as AsyncTestFunction

    D->>P: Run async_test_example
    P->>P: Check for suitable async plugin
    alt Pytest < 8.4.0 Behavior (No suitable plugin)
        P-->>D: Warning: No suitable async plugin installed
        P-->>AT: Skip async_test_example()
        P-->>D: Test SKIPPED
    else Pytest >= 8.4.0 Behavior (No suitable plugin)
        P-->>D: Error: No suitable async plugin installed
        P-->>D: Test FAILED
    end
Loading

Flow Diagram: Test Collection with collect_imported_tests Option in Pytest 8.4.0

graph TD
    A[Start Test Collection] --> B{"collect_imported_tests config value"};
    B -- "false" --> D["Collect tests defined ONLY in current file"];
    B -- "true / not set (mimics pre-8.4.0 default for imported names)" --> C["Collect tests defined in current file AND imported tests (if they match naming conventions)"];
    C --> E[End Collection];
    D --> E[End Collection];
Loading

File-Level Changes

Change Details Files
Upgrade pytest dependency version
  • Replace pytest version constraint from 8.3.5 to 8.4.0 in pyproject.toml
pyproject.toml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@codecov
Copy link

codecov bot commented Jun 6, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 89.15%. Comparing base (b22b058) to head (07770aa).
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3987      +/-   ##
==========================================
- Coverage   89.17%   89.15%   -0.03%     
==========================================
  Files         187      187              
  Lines       14970    14970              
==========================================
- Hits        13349    13346       -3     
- Misses       1621     1624       +3     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@germa89 germa89 merged commit 260b44b into main Jun 6, 2025
84 of 86 checks passed
@germa89 germa89 deleted the dependabot/pip/testing-5ee6585723 branch June 6, 2025 09:44
@germa89 germa89 mentioned this pull request Jun 16, 2025
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies maintenance General maintenance of the repo (libraries, cicd, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants