pytest-dev/pytest
### [`v7.2.1`](https://togithub.com/pytest-dev/pytest/releases/tag/7.2.1)
[Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.2.0...7.2.1)
# pytest 7.2.1 (2023-01-13)
## Bug Fixes
- [#10452](https://togithub.com/pytest-dev/pytest/issues/10452): Fix 'importlib.abc.TraversableResources' deprecation warning in Python 3.12.
- [#10457](https://togithub.com/pytest-dev/pytest/issues/10457): If a test is skipped from inside a fixture, the test summary now shows the test location instead of the fixture location.
- [#10506](https://togithub.com/pytest-dev/pytest/issues/10506): Fix bug where sometimes pytest would use the file system root directory as `rootdir `{.interpreted-text role="ref"} on Windows.
- [#10607](https://togithub.com/pytest-dev/pytest/issues/10607): Fix a race condition when creating junitxml reports, which could occur when multiple instances of pytest execute in parallel.
- [#10641](https://togithub.com/pytest-dev/pytest/issues/10641): Fix a race condition when creating or updating the stepwise plugin's cache, which could occur when multiple xdist worker nodes try to simultaneously update the stepwise plugin's cache.
### [`v7.2.0`](https://togithub.com/pytest-dev/pytest/releases/tag/7.2.0)
[Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.1.3...7.2.0)
# pytest 7.2.0 (2022-10-23)
## Deprecations
- [#10012](https://togithub.com/pytest-dev/pytest/issues/10012): Update `pytest.PytestUnhandledCoroutineWarning`{.interpreted-text role="class"} to a deprecation; it will raise an error in pytest 8.
- [#10396](https://togithub.com/pytest-dev/pytest/issues/10396): pytest no longer depends on the `py` library. `pytest` provides a vendored copy of `py.error` and `py.path` modules but will use the `py` library if it is installed. If you need other `py.*` modules, continue to install the deprecated `py` library separately, otherwise it can usually be removed as a dependency.
- [#4562](https://togithub.com/pytest-dev/pytest/issues/4562): Deprecate configuring hook specs/impls using attributes/marks.
Instead use :py`pytest.hookimpl`{.interpreted-text role="func"} and :py`pytest.hookspec`{.interpreted-text role="func"}.
For more details, see the `docs `{.interpreted-text role="ref"}.
- [#9886](https://togithub.com/pytest-dev/pytest/issues/9886): The functionality for running tests written for `nose` has been officially deprecated.
This includes:
- Plain `setup` and `teardown` functions and methods: this might catch users by surprise, as `setup()` and `teardown()` are not pytest idioms, but part of the `nose` support.
- Setup/teardown using the [@with_setup](with-setup-nose) decorator.
For more details, consult the `deprecation docs `{.interpreted-text role="ref"}.
## Features
- [#9897](https://togithub.com/pytest-dev/pytest/issues/9897): Added shell-style wildcard support to `testpaths`.
## Improvements
- [#10218](https://togithub.com/pytest-dev/pytest/issues/10218): `@pytest.mark.parametrize()` (and similar functions) now accepts any `Sequence[str]` for the argument names,
instead of just `list[str]` and `tuple[str, ...]`.
(Note that `str`, which is itself a `Sequence[str]`, is still treated as a
comma-delimited name list, as before).
- [#10381](https://togithub.com/pytest-dev/pytest/issues/10381): The `--no-showlocals` flag has been added. This can be passed directly to tests to override `--showlocals` declared through `addopts`.
- [#3426](https://togithub.com/pytest-dev/pytest/issues/3426): Assertion failures with strings in NFC and NFD forms that normalize to the same string now have a dedicated error message detailing the issue, and their utf-8 representation is expresed instead.
- [#7337](https://togithub.com/pytest-dev/pytest/issues/7337): A warning is now emitted if a test function returns something other than \[None]{.title-ref}. This prevents a common mistake among beginners that expect that returning a \[bool]{.title-ref} (for example \[return foo(a, b) == result]{.title-ref}) would cause a test to pass or fail, instead of using \[assert]{.title-ref}.
- [#8508](https://togithub.com/pytest-dev/pytest/issues/8508): Introduce multiline display for warning matching via :py`pytest.warns`{.interpreted-text role="func"} and
enhance match comparison for :py`_pytest._code.ExceptionInfo.match`{.interpreted-text role="func"} as returned by :py`pytest.raises`{.interpreted-text role="func"}.
- [#8646](https://togithub.com/pytest-dev/pytest/issues/8646): Improve :py`pytest.raises`{.interpreted-text role="func"}. Previously passing an empty tuple would give a confusing
error. We now raise immediately with a more helpful message.
- [#9741](https://togithub.com/pytest-dev/pytest/issues/9741): On Python 3.11, use the standard library's `tomllib`{.interpreted-text role="mod"} to parse TOML.
`tomli`{.interpreted-text role="mod"}\` is no longer a dependency on Python 3.11.
- [#9742](https://togithub.com/pytest-dev/pytest/issues/9742): Display assertion message without escaped newline characters with `-vv`.
- [#9823](https://togithub.com/pytest-dev/pytest/issues/9823): Improved error message that is shown when no collector is found for a given file.
- [#9873](https://togithub.com/pytest-dev/pytest/issues/9873): Some coloring has been added to the short test summary.
- [#9883](https://togithub.com/pytest-dev/pytest/issues/9883): Normalize the help description of all command-line options.
- [#9920](https://togithub.com/pytest-dev/pytest/issues/9920): Display full crash messages in `short test summary info`, when runng in a CI environment.
- [#9987](https://togithub.com/pytest-dev/pytest/issues/9987): Added support for hidden configuration file by allowing `.pytest.ini` as an alternative to `pytest.ini`.
## Bug Fixes
- [#10150](https://togithub.com/pytest-dev/pytest/issues/10150): `sys.stdin`{.interpreted-text role="data"} now contains all expected methods of a file-like object when capture is enabled.
- [#10382](https://togithub.com/pytest-dev/pytest/issues/10382): Do not break into pdb when `raise unittest.SkipTest()` appears top-level in a file.
- [#7792](https://togithub.com/pytest-dev/pytest/issues/7792): Marks are now inherited according to the full MRO in test classes. Previously, if a test class inherited from two or more classes, only marks from the first super-class would apply.
When inheriting marks from super-classes, marks from the sub-classes are now ordered before marks from the super-classes, in MRO order. Previously it was the reverse.
When inheriting marks from super-classes, the \[pytestmark]{.title-ref} attribute of the sub-class now only contains the marks directly applied to it. Previously, it also contained marks from its super-classes. Please note that this attribute should not normally be accessed directly; use `pytest.Node.iter_markers`{.interpreted-text role="func"} instead.
- [#9159](https://togithub.com/pytest-dev/pytest/issues/9159): Showing inner exceptions by forcing native display in `ExceptionGroups` even when using display options other than `--tb=native`. A temporary step before full implementation of pytest-native display for inner exceptions in `ExceptionGroups`.
- [#9877](https://togithub.com/pytest-dev/pytest/issues/9877): Ensure `caplog.get_records(when)` returns current/correct data after invoking `caplog.clear()`.
## Improved Documentation
- [#10344](https://togithub.com/pytest-dev/pytest/issues/10344): Update information on writing plugins to use `pyproject.toml` instead of `setup.py`.
- [#9248](https://togithub.com/pytest-dev/pytest/issues/9248): The documentation is now built using Sphinx 5.x (up from 3.x previously).
- [#9291](https://togithub.com/pytest-dev/pytest/issues/9291): Update documentation on how `pytest.warns`{.interpreted-text role="func"} affects `DeprecationWarning`{.interpreted-text role="class"}.
## Trivial/Internal Changes
- [#10196](https://togithub.com/pytest-dev/pytest/issues/10196): `~pytest.PytestReturnNotNoneWarning`{.interpreted-text role="class"} is now a subclass of `~pytest.PytestRemovedIn8Warning`{.interpreted-text role="class"}: the plan is to make returning non-`None` from tests an error in the future.
- [#10313](https://togithub.com/pytest-dev/pytest/issues/10313): Made `_pytest.doctest.DoctestItem` export `pytest.DoctestItem` for
type check and runtime purposes. Made \[\_pytest.doctest]{.title-ref} use internal APIs
to avoid circular imports.
- [#9906](https://togithub.com/pytest-dev/pytest/issues/9906): Made `_pytest.compat` re-export `importlib_metadata` in the eyes of type checkers.
- [#9910](https://togithub.com/pytest-dev/pytest/issues/9910): Fix default encoding warning (`EncodingWarning`) in `cacheprovider`
- [#9984](https://togithub.com/pytest-dev/pytest/issues/9984): Improve the error message when we attempt to access a fixture that has been
torn down.
Add an additional sentence to the docstring explaining when it's not a good
idea to call getfixturevalue.
### [`v7.1.3`](https://togithub.com/pytest-dev/pytest/releases/tag/7.1.3)
[Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.1.2...7.1.3)
# pytest 7.1.3 (2022-08-31)
## Bug Fixes
- [#10060](https://togithub.com/pytest-dev/pytest/issues/10060): When running with `--pdb`, `TestCase.tearDown` is no longer called for tests when the *class* has been skipped via `unittest.skip` or `pytest.mark.skip`.
- [#10190](https://togithub.com/pytest-dev/pytest/issues/10190): Invalid XML characters in setup or teardown error messages are now properly escaped for JUnit XML reports.
- [#10230](https://togithub.com/pytest-dev/pytest/issues/10230): Ignore `.py` files created by `pyproject.toml`-based editable builds introduced in [pip 21.3](https://pip.pypa.io/en/stable/news/#v21-3).
- [#3396](https://togithub.com/pytest-dev/pytest/issues/3396): Doctests now respect the `--import-mode` flag.
- [#9514](https://togithub.com/pytest-dev/pytest/issues/9514): Type-annotate `FixtureRequest.param` as `Any` as a stop gap measure until `8073`{.interpreted-text role="issue"} is fixed.
- [#9791](https://togithub.com/pytest-dev/pytest/issues/9791): Fixed a path handling code in `rewrite.py` that seems to work fine, but was incorrect and fails in some systems.
- [#9917](https://togithub.com/pytest-dev/pytest/issues/9917): Fixed string representation for `pytest.approx`{.interpreted-text role="func"} when used to compare tuples.
## Improved Documentation
- [#9937](https://togithub.com/pytest-dev/pytest/issues/9937): Explicit note that `tmpdir`{.interpreted-text role="fixture"} fixture is discouraged in favour of `tmp_path`{.interpreted-text role="fixture"}.
## Trivial/Internal Changes
- [#10114](https://togithub.com/pytest-dev/pytest/issues/10114): Replace [atomicwrites](https://togithub.com/untitaker/python-atomicwrites) dependency on windows with \[os.replace]{.title-ref}.
### [`v7.1.2`](https://togithub.com/pytest-dev/pytest/releases/tag/7.1.2)
[Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.1.1...7.1.2)
# pytest 7.1.2 (2022-04-23)
## Bug Fixes
- [#9726](https://togithub.com/pytest-dev/pytest/issues/9726): An unnecessary `numpy` import inside `pytest.approx`{.interpreted-text role="func"} was removed.
- [#9820](https://togithub.com/pytest-dev/pytest/issues/9820): Fix comparison of `dataclasses` with `InitVar`.
- [#9869](https://togithub.com/pytest-dev/pytest/issues/9869): Increase `stacklevel` for the `NODE_CTOR_FSPATH_ARG` deprecation to point to the
user's code, not pytest.
- [#9871](https://togithub.com/pytest-dev/pytest/issues/9871): Fix a bizarre (and fortunately rare) bug where the \[temp_path]{.title-ref} fixture could raise
an internal error while attempting to get the current user's username.
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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
==7.1.1
->==7.2.1
Release Notes
pytest-dev/pytest
### [`v7.2.1`](https://togithub.com/pytest-dev/pytest/releases/tag/7.2.1) [Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.2.0...7.2.1) # pytest 7.2.1 (2023-01-13) ## Bug Fixes - [#10452](https://togithub.com/pytest-dev/pytest/issues/10452): Fix 'importlib.abc.TraversableResources' deprecation warning in Python 3.12. - [#10457](https://togithub.com/pytest-dev/pytest/issues/10457): If a test is skipped from inside a fixture, the test summary now shows the test location instead of the fixture location. - [#10506](https://togithub.com/pytest-dev/pytest/issues/10506): Fix bug where sometimes pytest would use the file system root directory as `rootdirConfiguration
📅 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 has been generated by Mend Renovate. View repository job log here.