Subject: CVS commit: pkgsrc/devel/py-test
From: Adam Ciarcinski
Date: 2024-03-21 09:27:17
Message id: 20240321082717.514B0FA2C@cvs.NetBSD.org

Log Message:
py-test: updated to 8.1.1

pytest 8.1.1 (2024-03-08)
=========================

This release is not a usual bug fix release -- it contains features and \ 
improvements, being a follow up
to ``8.1.0``, which has been yanked from PyPI.

Features
--------

- Added the new :confval:`consider_namespace_packages` configuration option, \ 
defaulting to ``False``.

  If set to ``True``, pytest will attempt to identify modules that are part of \ 
`namespace packages \ 
<https://packaging.python.org/en/latest/guides/packaging-namespace-packages>`__ \ 
when importing modules.

- Added the new :confval:`verbosity_test_cases` configuration option for \ 
fine-grained control of test execution verbosity.
  See :ref:`Fine-grained verbosity <pytest.fine_grained_verbosity>` for \ 
more details.

Improvements
------------

- :func:`pytest.warns` now validates that :func:`warnings.warn` was called with \ 
a `str` or a `Warning`.
  Currently in Python it is possible to use other types, however this causes an \ 
exception when :func:`warnings.filterwarnings` is used to filter those warnings.
  While this can be considered a bug in CPython, we decided to put guards in \ 
pytest as the error message produced without this check in place is confusing.

- When using ``--override-ini`` for paths in invocations without a configuration \ 
file defined, the current working directory is used
  as the relative directory.

  Previoulsy this would raise an :class:`AssertionError`.

- :ref:`--import-mode=importlib <import-mode-importlib>` now tries to \ 
import modules using the standard import mechanism (but still without changing \ 
:py:data:`sys.path`), falling back to importing modules directly only if that \ 
fails.

  This means that installed packages will be imported under their canonical name \ 
if possible first, for example ``app.core.models``, instead of having the module \ 
name always be derived from their path (for example \ 
``.env310.lib.site_packages.app.core.models``).

- Added the :func:`iter_parents() <_pytest.nodes.Node.iter_parents>` \ 
helper method on nodes.
  It is similar to :func:`listchain <_pytest.nodes.Node.listchain>`, but \ 
goes from bottom to top, and returns an iterator, not a list.

- Added support for :data:`sys.last_exc` for post-mortem debugging on \ 
Python>=3.12.

- In case no other suitable candidates for configuration file are found, a \ 
``pyproject.toml`` (even without a ``[tool.pytest.ini_options]`` table) will be \ 
considered as the configuration file and define the ``rootdir``.

- Add ``--log-file-mode`` option to the logging plugin, enabling appending to \ 
log-files. This option accepts either ``"w"`` or ``"a"`` and \ 
defaults to ``"w"``.

  Previously, the mode was hard-coded to be ``"w"`` which truncates \ 
the file before logging.

- When multiple finalizers of a fixture raise an exception, now all exceptions \ 
are reported as an exception group.
  Previously, only the first exception was reported.

Bug Fixes
---------

- Fixed regression where ``--importmode=importlib`` would import non-test \ 
modules more than once.

- Fixed a regression in pytest 8.0.0 that would cause test collection to fail \ 
due to permission errors when using ``--pyargs``.

  This change improves the collection tree for tests specified using \ 
``--pyargs``, see :pull:`12043` for a comparison with pytest 8.0 and <8.

- Fixed a regression in 8.0.1 whereby ``setup_module`` xunit-style fixtures are \ 
not executed when ``--doctest-modules`` is passed.

- Fix the ``stacklevel`` used when warning about marks used on fixtures.

- Fixed a regression in ``8.0.2`` where tests created using :fixture:`tmp_path` \ 
have been collected multiple times in CI under Windows.

Improved Documentation
----------------------

- Documented the retention of temporary directories created using the \ 
``tmp_path`` fixture in more detail.

Trivial/Internal Changes
------------------------

- Some changes were made to private functions which may affect plugins which \ 
access them:

  - ``FixtureManager._getautousenames()`` now takes a ``Node`` itself instead of \ 
the nodeid.
  - ``FixtureManager.getfixturedefs()`` now takes the ``Node`` itself instead of \ 
the nodeid.
  - The ``_pytest.nodes.iterparentnodeids()`` function is removed without \ 
replacement.
    Prefer to traverse the node hierarchy itself instead.
    If you really need to, copy the function from the previous pytest release.

- Delayed the deprecation of the following features to ``9.0.0``:

  * :ref:`node-ctor-fspath-deprecation`.
  * :ref:`legacy-path-hooks-deprecated`.

  It was discovered after ``8.1.0`` was released that the warnings about the \ 
impeding removal were not being displayed, so the team decided to revert the \ 
removal.

  This is the reason for ``8.1.0`` being yanked.

Files:
RevisionActionfile
1.125modifypkgsrc/devel/py-test/Makefile
1.26modifypkgsrc/devel/py-test/PLIST
1.110modifypkgsrc/devel/py-test/distinfo