Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update pytest requirement from ~=7.4 to ~=8.2 #9576

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Apr 29, 2024

Updates the requirements on pytest to permit the latest version.

Release notes

Sourced from pytest's releases.

8.2.0

pytest 8.2.0 (2024-04-27)

Deprecations

  • #12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:

    • pytest_ignore_collect{.interpreted-text role="hook"} - the path parameter - use collection_path instead.
    • pytest_collect_file{.interpreted-text role="hook"} - the path parameter - use file_path instead.
    • pytest_pycollect_makemodule{.interpreted-text role="hook"} - the path parameter - use module_path instead.
    • pytest_report_header{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
    • pytest_report_collectionfinish{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.

    The replacement parameters are available since pytest 7.0.0. The old parameters will be removed in pytest 9.0.0.

    See legacy-path-hooks-deprecated{.interpreted-text role="ref"} for more details.

Features

  • #11871: Added support for reading command line arguments from a file using the prefix character @, like e.g.: pytest @tests.txt. The file must have one argument per line.

    See Read arguments from file <args-from-file>{.interpreted-text role="ref"} for details.

Improvements

  • #11523: pytest.importorskip{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised ImportError{.interpreted-text role="class"} instead of ModuleNotFoundError{.interpreted-text role="class"}.

    The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip{.interpreted-text role="func"}.

    See import-or-skip-import-error{.interpreted-text role="ref"} for details.

  • #11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>{.interpreted-text role="meth"}) are now reported instead of silently failing.

  • #11777: Text is no longer truncated in the short test summary info section when -vv is given.

  • #12112: Improved namespace packages detection when consider_namespace_packages{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).

  • #9502: Added PYTEST_VERSION{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of pytest.__version__, and among other things can be used to easily check if code is running from within a pytest run.

Bug Fixes

  • #12065: Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError: 'NoneType' object has no attribute 'setup_method'.

    Now the request.instance <pytest.FixtureRequest.instance>{.interpreted-text role="attr"} attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods.

... (truncated)

Commits
  • 6bd3f31 Tweak changelog for 8.2.0
  • 9b6219b Prepare release version 8.2.0
  • 835765c Merge pull request #12130 from bluetech/fixtures-inline
  • 7e7503c unittest: report class cleanup exceptions (#12250)
  • 882c4da fixtures: inline fail_fixturefunc
  • 2e8fb9f fixtures: extract a _check_fixturedef method
  • acf2971 fixtures: inline _getnextfixturedef into _get_active_fixturedef
  • 3c77aec fixtures: move "request" check early
  • d217d68 fixtures: inline _compute_fixture_value
  • 530be28 fixtures: use early return in _get_active_fixturedef
  • Additional commits viewable in compare view

You can trigger a rebase of this PR 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 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)

@dependabot dependabot bot added dependency Label for github dependabot Skip news 🔇 This change does not require a changelog entry labels Apr 29, 2024

This comment has been minimized.

@Pierre-Sassoulas Pierre-Sassoulas added this to the 3.2.0 milestone Apr 29, 2024
@Pierre-Sassoulas Pierre-Sassoulas added the Blocker 🙅 Blocks the next release label Apr 29, 2024
@Pierre-Sassoulas
Copy link
Member

@dependabot recreate

Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@7.4.0...8.2.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/pip/pytest-approx-eq-8.2 branch from 3771d98 to 3812d0d Compare April 29, 2024 21:49

This comment has been minimized.

@Pierre-Sassoulas
Copy link
Member

Pierre-Sassoulas commented May 1, 2024

I bisected this issue to pytest-dev/pytest@a21fb8 (introduced in pytest-dev/pytest#11138 released in pytest 8.0.0), this was rather long to do because launching a failing test alone does not trigger the error (You have to launch the whole test suite to reproduce). I supposed there's some test contamination in the pylint test suite initially but it might also be an issue with the test discovery from pytest seeing the offending commit.

@Pierre-Sassoulas Pierre-Sassoulas added High effort 🏋 Difficult solution or problem to solve Needs investigation 🔬 A bug or crash where it's not immediately obvious what is happenning and removed Blocker 🙅 Blocks the next release labels May 1, 2024
@Pierre-Sassoulas
Copy link
Member

Removing blocker label because we can release by testing with pytest < 8.0.0

@Pierre-Sassoulas Pierre-Sassoulas removed this from the 3.2.0 milestone May 1, 2024
@Pierre-Sassoulas Pierre-Sassoulas dismissed their stale review May 1, 2024 12:43

Need to investigate and fix a test contamination or worse

Suggestion from pytest-dev/pytest#11138 (comment)

With 'pytest' (launching the whole pylint test suite):
FAILED tests/test_precedence.py::test_package - AssertionError: E: 21: Module 'package.AudioTime' has no 'DECIMAL' member<function Equals.<locals>.<lambda> at 0x76c566741750>

With 'pytest tests/test_precedence.py':
tests/test_precedence.py .                                                                                                                                                                           [100%]

============================================================================================ 1 passed in 1.04s =============================================================================================

With 'python tests/test_precedence.py':
Checked ['package.__init__'] successfully
Checked ['precedence_test'] successfully
Checked ['import_package_subpackage_module'] successfully
Checked ['pylint.checkers.__init__'] successfully
Checked ['/home/pierre/pylint/tests/regrtest_data/classdoc_usage.py'] successfully
Checked ['/home/pierre/pylint/tests/regrtest_data/module_global.py'] successfully
Checked ['/home/pierre/pylint/tests/regrtest_data/decimal_inference.py'] successfully
Checked ['/home/pierre/pylint/tests/regrtest_data/absimp/string.py'] successfully
Checked ['/home/pierre/pylint/tests/regrtest_data/bad_package'] successfully
@Pierre-Sassoulas Pierre-Sassoulas force-pushed the dependabot/pip/pytest-approx-eq-8.2 branch from 4cf3b21 to 49a7a61 Compare May 1, 2024 15:54
Copy link
Contributor

github-actions bot commented May 1, 2024

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit 49a7a61

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependency Label for github dependabot High effort 🏋 Difficult solution or problem to solve Needs investigation 🔬 A bug or crash where it's not immediately obvious what is happenning Skip news 🔇 This change does not require a changelog entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant