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.
|
2023-09-05 20:58:32 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-test: updated to 7.4.1
pytest 7.4.1 (2023-09-02)
=========================
Bug Fixes
---------
- Fixed bug where fake intermediate modules generated by \
``--import-mode=importlib`` would not include the
child modules as attributes of the parent modules.
- Fixed error assertion handling in :func:`pytest.approx` when ``None`` is an \
expected or received value when comparing dictionaries.
- Fixed issue when using ``--import-mode=importlib`` together with \
``--doctest-modules`` that caused modules
to be imported more than once, causing problems with modules that have import \
side effects.
|
2023-06-26 18:03:50 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-test: updated to 7.4.0
pytest 7.4.0 (2023-06-23)
Features
* Added ExceptionInfo.from_exception(), a simpler way to create an ExceptionInfo \
from an exception. This can replace ExceptionInfo.from_exc_info() for most uses.
Improvements
* Update test log report annotation to named tuple and fixed inconsistency in \
docs for pytest_report_teststatus hook.
* When an exception traceback to be displayed is completely filtered out (by \
mechanisms such as __tracebackhide__, internal frames, and similar), now only \
the exception string and the following message are shown:
“All traceback entries are hidden. Pass --full-trace to see hidden and \
internal frames.”.
Previously, the last frame of the traceback was shown, even though it was hidden.
* Improved verbose output (-vv) of skip and xfail reasons by performing text \
wrapping while leaving a clear margin for progress output.
Added TerminalReporter.wrap_write() as a helper for that.
* Added handling of %f directive to print microseconds in log format options, \
such as log-date-format.
* Added the underlying exception to the cache provider’s path creation and \
write warning messages.
* Added warning when testpaths is set, but paths are not found by glob. In this \
case, pytest will fall back to searching from the current directory.
* When --confcutdir is not specified, and there is no config file present, the \
conftest cutoff directory (--confcutdir) is now set to the rootdir. Previously \
in such cases, conftest.py files would be probed all the way to the root \
directory of the filesystem. If you are badly affected by this change, consider \
adding an empty config file to your desired cutoff directory, or explicitly set \
--confcutdir.
* The norecursedirs check is now performed in a pytest_ignore_collect \
implementation, so plugins can affect it.
If after updating to this version you see that your norecursedirs setting is not \
being respected, it means that a conftest or a plugin you use has a bad \
pytest_ignore_collect implementation. Most likely, your hook returns False for \
paths it does not want to ignore, which ends the processing and doesn’t allow \
other plugins, including pytest itself, to ignore the path. The fix is to return \
None instead of False for paths your hook doesn’t want to ignore.
* caplog.set_level() and caplog.at_level() will temporarily enable the requested \
level if level was disabled globally via logging.disable(LEVEL).
Bug Fixes
* Terminal Reporting: Fixed bug when running in --tb=line mode where \
pytest.fail(pytrace=False) tests report None.
* Fixed the --last-failed whole-file skipping functionality (“skipped N \
files”) for non-python test files.
* Fixed a regression in pytest 7.3.2 which caused to testpaths to be considered \
for loading initial conftests, even when it was not utilized (e.g. when explicit \
paths were given on the command line). Now the testpaths are only considered \
when they are in use.
* Fixed traceback entries hidden with __tracebackhide__ = True still being shown \
for chained exceptions (parts after “… the above exception …” message).
* Fix writing non-encodable text to log file when using --debug.
Improved Documentation
* Improved documentation for caplog.set_level().
Trivial/Internal Changes
* Enhanced the CLI flag for -c to now include --config-file to make it clear \
that this flag applies to the usage of a custom config file.
|