2024-05-20 09:41:57 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 8.2.1 pytest 8.2.1 (2024-05-19) ========================= Improvements ------------ - Support for Python 3.13 (beta1 at the time of writing). Bug Fixes --------- - Fix `PermissionError` crashes arising from directories which are not selected \ on the command-line. - Keyboard interrupts and system exits are now properly handled during the test \ collection. - Fixed handling of 'Function not implemented' error under squashfuse_ll, which \ is a different way to say that the mountpoint is read-only. - 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 ------------------------ - 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. |
2024-04-30 06:01:25 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 8.2.0 pytest 8.2.0 (2024-04-27) Deprecations 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 - the path parameter - use collection_path instead. pytest_collect_file - the path parameter - use file_path instead. pytest_pycollect_makemodule - the path parameter - use module_path instead. pytest_report_header - the startdir parameter - use start_path instead. pytest_report_collectionfinish - 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 py.path.local arguments for hooks replaced with pathlib.Path for more details. Features 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 for details. Improvements pytest.importorskip() will now issue a warning if the module could be found, but \ raised ImportError instead of ModuleNotFoundError. The warning can be suppressed by passing exc_type=ImportError to \ pytest.importorskip(). See pytest.importorskip default behavior regarding ImportError for details. For unittest-based tests, exceptions during class cleanup (as raised by \ functions registered with TestCase.addClassCleanup) are now reported instead of \ silently failing. Text is no longer truncated in the short test summary info section when -vv is given. Improved namespace packages detection when consider_namespace_packages is \ enabled, covering more situations (like editable installs). Added PYTEST_VERSION 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 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 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. Fixed issue where fixtures adding their finalizer multiple times to fixtures \ they request would cause unreliable and non-intuitive teardown ordering in some \ instances. Fixed a bug with --importmode=importlib and --doctest-modules where child \ modules did not appear as attributes in parent modules. Fixed some instances where teardown of higher-scoped fixtures was not happening \ in the reverse order they were initialized in. Trivial/Internal Changes pluggy>=1.5.0 is now required. cache: create supporting files (CACHEDIR.TAG, .gitignore, etc.) in a temporary \ directory to provide atomic semantics. |
2024-04-26 21:56:28 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 8.1.2 pytest 8.1.2 (2024-04-26) Bug Fixes Fixed error in pytest.approx() when used with numpy arrays and comparing with \ other types. |
2024-03-21 09:27:17 by Adam Ciarcinski | Files touched by this commit (3) | |
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. |
2024-02-25 23:40:02 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 8.0.2 pytest 8.0.2 (2024-02-24) Bug Fixes - Fix collection on Windows where initial paths contain the short version of a \ path (for example ``c:\PROGRA~1\tests``). - Fix an ``IndexError`` crash raising from ``getstatementrange_ast``. - Reverted a fix to `--maxfail` handling in pytest 8.0.0 because it caused a \ regression in pytest-xdist whereby session fixture teardowns may get executed \ multiple times when the max-fails is reached. |
2024-02-17 03:10:00 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 8.0.1 pytest 8.0.1 (2024-02-16) Bug Fixes - Correctly handle errors from :func:`getpass.getuser` in Python 3.13. - Fix an edge case where ``ExceptionInfo._stringify_exception`` could crash \ :func:`pytest.raises`. - Fix regression with :func:`pytest.warns` using custom warning subclasses which \ have more than one parameter in their `__init__`. - Fix a regression in pytest 8.0.0 whereby calling :func:`pytest.skip` and \ similar control-flow exceptions within a :func:`pytest.warns()` block would get \ suppressed instead of propagating. - Fix a regression in pytest 8.0.0 whereby autouse fixtures defined in a module \ get ignored by the doctests in the module. - Fix a regression in pytest 8.0.0 whereby items would be collected in reverse \ order in some circumstances. |
2024-02-02 17:19:52 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message: py-test: updated to 8.0.0 pytest 8.0.0 (2024-01-27) Bug Fixes * Properly escape the reason of a skip mark when writing JUnit XML files. * Avoid microsecond exceeds 1_000_000 when using log-date-format with %f \ specifier, which might cause the test suite to crash. https://docs.pytest.org/en/stable/changelog.html |
2023-12-31 20:11:55 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message: py-test: updated to 7.4.4 pytest 7.4.4 (2023-12-31) Bug Fixes - Fix non-string constants at the top of file being detected as docstrings on \ Python>=3.8. - Handle an edge case where :data:`sys.stderr` and :data:`sys.__stderr__` might \ already be closed when :ref:`faulthandler` is tearing down. - Fixed tracebacks from collection errors not getting pruned. - Removed unhelpful error message from assertion rewrite mechanism when \ exceptions are raised in ``__iter__`` methods. Now they are treated un-iterable \ instead. Improved Documentation - Updated documentation to refer to hyphenated options: replaced ``--junitxml`` \ with ``--junit-xml`` and ``--collectonly`` with ``--collect-only``. |
2023-10-25 10:37:18 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 7.4.3 pytest 7.4.3 (2023-10-24) Bug Fixes - Markers are now considered in the reverse mro order to ensure base class \ markers are considered first -- this resolves a regression. - Fixed ``:=`` in asserts impacting unrelated test cases. - Handled an edge case where :data:`sys.stderr` might already be closed when \ :ref:`faulthandler` is tearing down. |
2023-09-08 08:26:04 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message: py-test: updated to 7.4.2 pytest 7.4.2 (2023-09-07) ========================= Bug Fixes --------- - Fix doctest collection of `functools.cached_property` objects. - Fixed bug using ``--importmode=importlib`` which would cause package \ ``__init__.py`` files to be imported more than once in some cases. - Fixed bug where `user_properties` where not being saved in the JUnit XML file \ if a fixture failed during teardown. - Fixed crash when parsing long command line arguments that might be interpreted \ as files. Improved Documentation ---------------------- - Improved disclaimer on pytest plugin reference page to better indicate this is \ an automated, non-curated listing. |