--- - branch: MAIN date: Thu Mar 21 08:27:17 UTC 2024 files: - new: '1.125' old: '1.124' path: pkgsrc/devel/py-test/Makefile pathrev: pkgsrc/devel/py-test/Makefile@1.125 type: modified - new: '1.26' old: '1.25' path: pkgsrc/devel/py-test/PLIST pathrev: pkgsrc/devel/py-test/PLIST@1.26 type: modified - new: '1.110' old: '1.109' path: pkgsrc/devel/py-test/distinfo pathrev: pkgsrc/devel/py-test/distinfo@1.110 type: modified id: 20240321T082717Z.bbd9f5ac71913459f33ff56abb7636925c7ad5c4 log: | 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 `__ 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 ` 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 ` 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. module: pkgsrc subject: 'CVS commit: pkgsrc/devel/py-test' unixtime: '1711009637' user: adam