pytest-dev/pytest (pytest)
### [`v8.3.3`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.3)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.2...8.3.3)
# pytest 8.3.3 (2024-09-09)
## Bug fixes
- [#12446](https://redirect.github.com/pytest-dev/pytest/issues/12446): Avoid calling `@property` (and other instance descriptors) during fixture discovery -- by `asottile`{.interpreted-text role="user"}
- [#12659](https://redirect.github.com/pytest-dev/pytest/issues/12659): Fixed the issue of not displaying assertion failure differences when using the parameter `--import-mode=importlib` in pytest>=8.1.
- [#12667](https://redirect.github.com/pytest-dev/pytest/issues/12667): Fixed a regression where type change in \[ExceptionInfo.errisinstance]{.title-ref} caused \[mypy]{.title-ref} to fail.
- [#12744](https://redirect.github.com/pytest-dev/pytest/issues/12744): Fixed typing compatibility with Python 3.9 or less -- replaced \[typing.Self]{.title-ref} with \[typing_extensions.Self]{.title-ref} -- by `Avasam`{.interpreted-text role="user"}
- [#12745](https://redirect.github.com/pytest-dev/pytest/issues/12745): Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.
- [#6682](https://redirect.github.com/pytest-dev/pytest/issues/6682): Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in `assert condition, msg`).
- [#9422](https://redirect.github.com/pytest-dev/pytest/issues/9422): Fix bug where disabling the terminal plugin via `-p no:terminal` would cause crashes related to missing the `verbose` option.
\-- by `GTowers1`{.interpreted-text role="user"}
## Improved documentation
- [#12663](https://redirect.github.com/pytest-dev/pytest/issues/12663): Clarify that the \[pytest_deselected]{.title-ref} hook should be called from \[pytest_collection_modifyitems]{.title-ref} hook implementations when items are deselected.
- [#12678](https://redirect.github.com/pytest-dev/pytest/issues/12678): Remove erroneous quotes from \[tmp_path_retention_policy]{.title-ref} example in docs.
## Miscellaneous internal changes
- [#12769](https://redirect.github.com/pytest-dev/pytest/issues/12769): Fix typos discovered by codespell and add codespell to pre-commit hooks.
### [`v8.3.2`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.2)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.1...8.3.2)
# pytest 8.3.2 (2024-07-24)
## Bug fixes
- [#12652](https://redirect.github.com/pytest-dev/pytest/issues/12652): Resolve regression \[conda]{.title-ref} environments where no longer being automatically detected.
\-- by `RonnyPfannschmidt`{.interpreted-text role="user"}
### [`v8.3.1`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.1)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.0...8.3.1)
# pytest 8.3.1 (2024-07-20)
The 8.3.0 release failed to include the change notes and docs for the release. This patch release remedies this. There are no other changes.
### [`v8.3.0`](https://redirect.github.com/pytest-dev/pytest/compare/8.2.2...8.3.0)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.2...8.3.0)
### [`v8.2.2`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.2)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.1...8.2.2)
# pytest 8.2.2 (2024-06-04)
## Bug Fixes
- [#12355](https://redirect.github.com/pytest-dev/pytest/issues/12355): Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters.
- [#12367](https://redirect.github.com/pytest-dev/pytest/issues/12367): Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
- [#12381](https://redirect.github.com/pytest-dev/pytest/issues/12381): Fix possible "Directory not empty" crashes arising from concurent cache dir (`.pytest_cache`) creation. Regressed in pytest 8.2.0.
## Improved Documentation
- [#12290](https://redirect.github.com/pytest-dev/pytest/issues/12290): Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme.
- [#12356](https://redirect.github.com/pytest-dev/pytest/issues/12356): Added a subsection to the documentation for debugging flaky tests to mention
lack of thread safety in pytest as a possible source of flakyness.
- [#12363](https://redirect.github.com/pytest-dev/pytest/issues/12363): The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
### [`v8.2.1`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.1)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.0...8.2.1)
# pytest 8.2.1 (2024-05-19)
## Improvements
- [#12334](https://redirect.github.com/pytest-dev/pytest/issues/12334): Support for Python 3.13 (beta1 at the time of writing).
## Bug Fixes
- [#12120](https://redirect.github.com/pytest-dev/pytest/issues/12120): Fix \[PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line.
- [#12191](https://redirect.github.com/pytest-dev/pytest/issues/12191): Keyboard interrupts and system exits are now properly handled during the test collection.
- [#12300](https://redirect.github.com/pytest-dev/pytest/issues/12300): Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
- [#12308](https://redirect.github.com/pytest-dev/pytest/issues/12308): Fix a regression in pytest 8.2.0 where the permissions of automatically-created `.pytest_cache` directories became `rwx------` instead of the expected `rwxr-xr-x`.
## Trivial/Internal Changes
- [#12333](https://redirect.github.com/pytest-dev/pytest/issues/12333): pytest releases are now attested using the recent [Artifact Attestation](https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/) support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.
### [`v8.2.0`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.0)
[Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.1.2...8.2.0)
# pytest 8.2.0 (2024-04-27)
## Deprecations
- [#12069](https://redirect.github.com/pytest-dev/pytest/issues/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](https://redirect.github.com/pytest-dev/pytest/issues/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 `{.interpreted-text role="ref"} for details.
## Improvements
- [#11523](https://redirect.github.com/pytest-dev/pytest/issues/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](https://redirect.github.com/pytest-dev/pytest/issues/11728): For `unittest`-based tests, exceptions during class cleanup (as raised by functions registered with `TestCase.addClassCleanup `{.interpreted-text role="meth"}) are now reported instead of silently failing.
- [#11777](https://redirect.github.com/pytest-dev/pytest/issues/11777): Text is no longer truncated in the `short test summary info` section when `-vv` is given.
- [#12112](https://redirect.github.com/pytest-dev/pytest/issues/12112): Improved namespace packages detection when `consider_namespace_packages`{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).
- [#9502](https://redirect.github.com/pytest-dev/pytest/issues/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](https://redirect.github.com/pytest-dev/pytest/issues/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 `{.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.
Previously it was `None`, and all fixtures of such tests would share a single `self`.
- [#12135](https://redirect.github.com/pytest-dev/pytest/issues/12135): Fixed issue where fixtures adding their finalizer multiple times to fixtures they request would cause unreliable and non-intuitive teardown ordering in some instances.
- [#12194](https://redirect.github.com/pytest-dev/pytest/issues/12194): Fixed a bug with `--importmode=importlib` and `--doctest-modules` where child modules did not appear as attributes in parent modules.
- [#1489](https://redirect.github.com/pytest-dev/pytest/issues/1489): Fixed some instances where teardown of higher-scoped fixtures was not happening in the reverse order they were initialized in.
## Trivial/Internal Changes
- [#12069](https://redirect.github.com/pytest-dev/pytest/issues/12069): `pluggy>=1.5.0` is now required.
- [#12167](https://redirect.github.com/pytest-dev/pytest/issues/12167): `cache `{.interpreted-text role="ref"}: create supporting files (`CACHEDIR.TAG`, `.gitignore`, etc.) in a temporary directory to provide atomic semantics.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
==8.1.2
->==8.3.3
Release Notes
pytest-dev/pytest (pytest)
### [`v8.3.3`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.3) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.2...8.3.3) # pytest 8.3.3 (2024-09-09) ## Bug fixes - [#12446](https://redirect.github.com/pytest-dev/pytest/issues/12446): Avoid calling `@property` (and other instance descriptors) during fixture discovery -- by `asottile`{.interpreted-text role="user"} - [#12659](https://redirect.github.com/pytest-dev/pytest/issues/12659): Fixed the issue of not displaying assertion failure differences when using the parameter `--import-mode=importlib` in pytest>=8.1. - [#12667](https://redirect.github.com/pytest-dev/pytest/issues/12667): Fixed a regression where type change in \[ExceptionInfo.errisinstance]{.title-ref} caused \[mypy]{.title-ref} to fail. - [#12744](https://redirect.github.com/pytest-dev/pytest/issues/12744): Fixed typing compatibility with Python 3.9 or less -- replaced \[typing.Self]{.title-ref} with \[typing_extensions.Self]{.title-ref} -- by `Avasam`{.interpreted-text role="user"} - [#12745](https://redirect.github.com/pytest-dev/pytest/issues/12745): Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments. - [#6682](https://redirect.github.com/pytest-dev/pytest/issues/6682): Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in `assert condition, msg`). - [#9422](https://redirect.github.com/pytest-dev/pytest/issues/9422): Fix bug where disabling the terminal plugin via `-p no:terminal` would cause crashes related to missing the `verbose` option. \-- by `GTowers1`{.interpreted-text role="user"} ## Improved documentation - [#12663](https://redirect.github.com/pytest-dev/pytest/issues/12663): Clarify that the \[pytest_deselected]{.title-ref} hook should be called from \[pytest_collection_modifyitems]{.title-ref} hook implementations when items are deselected. - [#12678](https://redirect.github.com/pytest-dev/pytest/issues/12678): Remove erroneous quotes from \[tmp_path_retention_policy]{.title-ref} example in docs. ## Miscellaneous internal changes - [#12769](https://redirect.github.com/pytest-dev/pytest/issues/12769): Fix typos discovered by codespell and add codespell to pre-commit hooks. ### [`v8.3.2`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.2) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.1...8.3.2) # pytest 8.3.2 (2024-07-24) ## Bug fixes - [#12652](https://redirect.github.com/pytest-dev/pytest/issues/12652): Resolve regression \[conda]{.title-ref} environments where no longer being automatically detected. \-- by `RonnyPfannschmidt`{.interpreted-text role="user"} ### [`v8.3.1`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.3.1) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.3.0...8.3.1) # pytest 8.3.1 (2024-07-20) The 8.3.0 release failed to include the change notes and docs for the release. This patch release remedies this. There are no other changes. ### [`v8.3.0`](https://redirect.github.com/pytest-dev/pytest/compare/8.2.2...8.3.0) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.2...8.3.0) ### [`v8.2.2`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.2) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.1...8.2.2) # pytest 8.2.2 (2024-06-04) ## Bug Fixes - [#12355](https://redirect.github.com/pytest-dev/pytest/issues/12355): Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters. - [#12367](https://redirect.github.com/pytest-dev/pytest/issues/12367): Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown. - [#12381](https://redirect.github.com/pytest-dev/pytest/issues/12381): Fix possible "Directory not empty" crashes arising from concurent cache dir (`.pytest_cache`) creation. Regressed in pytest 8.2.0. ## Improved Documentation - [#12290](https://redirect.github.com/pytest-dev/pytest/issues/12290): Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme. - [#12356](https://redirect.github.com/pytest-dev/pytest/issues/12356): Added a subsection to the documentation for debugging flaky tests to mention lack of thread safety in pytest as a possible source of flakyness. - [#12363](https://redirect.github.com/pytest-dev/pytest/issues/12363): The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results. ### [`v8.2.1`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.1) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.2.0...8.2.1) # pytest 8.2.1 (2024-05-19) ## Improvements - [#12334](https://redirect.github.com/pytest-dev/pytest/issues/12334): Support for Python 3.13 (beta1 at the time of writing). ## Bug Fixes - [#12120](https://redirect.github.com/pytest-dev/pytest/issues/12120): Fix \[PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line. - [#12191](https://redirect.github.com/pytest-dev/pytest/issues/12191): Keyboard interrupts and system exits are now properly handled during the test collection. - [#12300](https://redirect.github.com/pytest-dev/pytest/issues/12300): Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only. - [#12308](https://redirect.github.com/pytest-dev/pytest/issues/12308): Fix a regression in pytest 8.2.0 where the permissions of automatically-created `.pytest_cache` directories became `rwx------` instead of the expected `rwxr-xr-x`. ## Trivial/Internal Changes - [#12333](https://redirect.github.com/pytest-dev/pytest/issues/12333): pytest releases are now attested using the recent [Artifact Attestation](https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/) support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts. ### [`v8.2.0`](https://redirect.github.com/pytest-dev/pytest/releases/tag/8.2.0) [Compare Source](https://redirect.github.com/pytest-dev/pytest/compare/8.1.2...8.2.0) # pytest 8.2.0 (2024-04-27) ## Deprecations - [#12069](https://redirect.github.com/pytest-dev/pytest/issues/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](https://redirect.github.com/pytest-dev/pytest/issues/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 fileConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.