Next | Query returned 129 messages, browsing 11 to 20 | Previous

History of commit frequency

CVS Commit History:


   2023-06-12 11:29:53 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.3.2

pytest 7.3.2 (2023-06-10)
=========================

Bug Fixes
---------
- Fix bug where very long option names could cause pytest to break with \ 
``OSError: [Errno 36] File name too long`` on some systems.
- Support for Python 3.12 (beta at the time of writing).
- :confval:`testpaths` is now honored to load root ``conftests``.
- The `monkeypatch` `setitem`/`delitem` type annotations now allow `TypedDict` \ 
arguments.
- Fixed bug in assertion rewriting where a variable assigned with the walrus \ 
operator could not be used later in a function call.
- Fixed ``--last-failed``'s "(skipped N files)" functionality for \ 
files inside of packages (directories with `__init__.py` files).
   2023-04-17 10:17:42 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.3.1

pytest 7.3.1 (2023-04-14)
=========================

Improvements
------------
- Python 3.12 support: fixed ``RuntimeError: TestResult has no addDuration \ 
method`` when running ``unittest`` tests.

- Python 3.12 support: fixed ``shutil.rmtree(onerror=...)`` deprecation warning \ 
when using :fixture:`tmp_path`.

Bug Fixes
---------
- Fixed performance regression related to :fixture:`tmp_path` and the new \ 
:confval:`tmp_path_retention_policy` option.

- Fix crash ``INTERNALERROR IndexError: list index out of range`` which happens \ 
when displaying an exception where all entries are hidden.
  This reverts the change "Correctly handle ``__tracebackhide__`` for \ 
chained exceptions." introduced in version 7.3.0.

pytest 7.3.0 (2023-04-08)
=========================

Features
--------
- Test methods decorated with ``@classmethod`` can now be discovered as tests, \ 
following the same rules as normal methods. This fills the gap that static \ 
methods were discoverable as tests but not class methods.

- :confval:`console_output_style` now supports ``progress-even-when-capture-no`` \ 
to force the use of the progress output even when capture is disabled. This is \ 
useful in large test suites where capture may have significant performance \ 
impact.

- ``--log-disable`` CLI option added to disable individual loggers.

- Added :confval:`tmp_path_retention_count` and \ 
:confval:`tmp_path_retention_policy` configuration options to control how \ 
directories created by the :fixture:`tmp_path` fixture are kept.

Improvements
------------
- If multiple errors are raised in teardown, we now re-raise an \ 
``ExceptionGroup`` of them instead of discarding all but the last.

- Allow ``-p`` arguments to include spaces (eg: ``-p no:logging`` instead of
  ``-pno:logging``). Mostly useful in the ``addopts`` section of the configuration
  file.

- Added ``start`` and ``stop`` timestamps to ``TestReport`` objects.

- Split the report header for ``rootdir``, ``config file`` and ``testpaths`` so \ 
each has its own line.

- pytest should no longer crash on AST with pathological position attributes, \ 
for example testing AST produced by `Hylang \ 
<https://github.com/hylang/hy>__`.

- The full output of a test is no longer truncated if the truncation message \ 
would be longer than
  the hidden text. The line number shown has also been fixed.

Bug Fixes
---------
- The assertion rewriting mechanism now works correctly when assertion \ 
expressions contain the walrus operator.

- Fixed :fixture:`tmp_path` fixture always raising :class:`OSError` on \ 
``emscripten`` platform due to missing :func:`os.getuid`.

- Correctly handle ``__tracebackhide__`` for chained exceptions.
  NOTE: This change was reverted in version 7.3.1.

Improved Documentation
----------------------
- Fixed the minimal example in :ref:`goodpractices`: ``pip install -e .`` \ 
requires a ``version`` entry in ``pyproject.toml`` to run successfully.

Trivial/Internal Changes
------------------------
- pytest no longer directly depends on the `attrs \ 
<https://www.attrs.org/en/stable/>`__ package. While
  we at pytest all love the package dearly and would like to thank the ``attrs`` \ 
team for many years of cooperation and support,
  it makes sense for ``pytest`` to have as little external dependencies as \ 
possible, as this helps downstream projects.
  With that in mind, we have replaced the pytest's limited internal usage to use \ 
the standard library's ``dataclasses`` instead.

  Nice diffs for ``attrs`` classes are still supported though.
   2023-03-29 11:34:15 by Thomas Klausner | Files touched by this commit (96)
Log message:
*: use PYTHON_VERSION instead of _PYTHON_VERSION
   2023-03-07 19:58:03 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.2.2

pytest 7.2.2 (2023-03-03)

Bug Fixes
---------
- Fixed :func:`pytest.approx` handling of dictionaries containing one or more \ 
values of `0.0`.
- Fixed crash if `--cache-show` and `--help` are passed at the same time.
- Fixed bug where a fixture method named ``teardown`` would be called as part of \ 
``nose`` teardown stage.
- Fixed crash if ``--fixtures`` and ``--help`` are passed at the same time.
- Fixed :py:func:`pytest.raises` to return a 'ContextManager' so that \ 
type-checkers could narrow
  :code:`pytest.raises(...) if ... else nullcontext()` down to 'ContextManager' \ 
rather than 'object'.

Improved Documentation
----------------------
- Added `CI` and `BUILD_NUMBER` environment variables to the documentation.
- Fixed entry-points declaration in the documentation example using Hatch.
- Changed wording of the module level skip to be very explicit
  about not collecting tests and not executing the rest of the module.
   2023-01-16 15:29:26 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.2.1

pytest 7.2.1 (2023-01-13)
Bug Fixes
Fix ‘importlib.abc.TraversableResources’ deprecation warning in Python 3.12.
If a test is skipped from inside a fixture, the test summary now shows the test \ 
location instead of the fixture location.
Fix bug where sometimes pytest would use the file system root directory as \ 
rootdir on Windows.
Fix a race condition when creating junitxml reports, which could occur when \ 
multiple instances of pytest execute in parallel.
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.
   2022-10-28 10:58:12 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-test: updated to 7.2.0

pytest 7.2.0 (2022-10-23)

Deprecations
* Update pytest.PytestUnhandledCoroutineWarning to a deprecation; it will raise \ 
an error in pytest 8.

* 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.

* Deprecate configuring hook specs/impls using attributes/marks.

Instead use pytest.hookimpl() and pytest.hookspec(). For more details, see the docs.

* 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 decorator.
For more details, consult the deprecation docs.

* A deprecation warning is now emitted if a test function returns something \ 
other than None. This prevents a common mistake among beginners that expect that \ 
returning a bool (for example return foo(a, b) == result) would cause a test to \ 
pass or fail, instead of using assert. The plan is to make returning non-None \ 
from tests an error in the future.
Features
* Added shell-style wildcard support to testpaths.

Improvements
* @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).

* The --no-showlocals flag has been added. This can be passed directly to tests \ 
to override --showlocals declared through addopts.

* 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 expressed instead.

* Introduce multiline display for warning matching via pytest.warns() and \ 
enhance match comparison for _pytest._code.ExceptionInfo.match() as returned by \ 
pytest.raises().

* Improve pytest.raises(). Previously passing an empty tuple would give a \ 
confusing error. We now raise immediately with a more helpful message.

* On Python 3.11, use the standard library’s tomllib to parse TOML.

tomli is no longer a dependency on Python 3.11.

* Display assertion message without escaped newline characters with -vv.

* Improved error message that is shown when no collector is found for a given file.

* Some coloring has been added to the short test summary.

* Normalize the help description of all command-line options.

* Display full crash messages in short test summary info, when running in a CI \ 
environment.

* Added support for hidden configuration file by allowing .pytest.ini as an \ 
alternative to pytest.ini.

Bug Fixes
* sys.stdin now contains all expected methods of a file-like object when capture \ 
is enabled.

* Do not break into pdb when raise unittest.SkipTest() appears top-level in a file.

* 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 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() \ 
instead.

* 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.

* Ensure caplog.get_records(when) returns current/correct data after invoking \ 
caplog.clear().

Improved Documentation
* Update information on writing plugins to use pyproject.toml instead of setup.py.
* The documentation is now built using Sphinx 5.x (up from 3.x previously).
* Update documentation on how pytest.warns() affects DeprecationWarning.
Trivial/Internal Changes
* Made _pytest.doctest.DoctestItem export pytest.DoctestItem for type check and \ 
runtime purposes. Made _pytest.doctest use internal APIs to avoid circular \ 
imports.
* Made _pytest.compat re-export importlib_metadata in the eyes of type checkers.
* Fix default encoding warning (EncodingWarning) in cacheprovider
* 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.
   2022-09-02 16:47:15 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.1.3

pytest 7.1.3 (2022-08-31)

Bug Fixes
---------
- 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``.
- Invalid XML characters in setup or teardown error messages are now properly \ 
escaped for JUnit XML reports.
- Ignore ``.py`` files created by ``pyproject.toml``-based editable builds \ 
introduced in `pip 21.3 <https://pip.pypa.io/en/stable/news/#v21-3>`__.
- Doctests now respect the ``--import-mode`` flag.
- Type-annotate ``FixtureRequest.param`` as ``Any`` as a stop gap measure until \ 
:issue:`8073` is fixed.
- Fixed a path handling code in ``rewrite.py`` that seems to work fine, but was \ 
incorrect and fails in some systems.
- Fixed string representation for :func:`pytest.approx` when used to compare tuples.

Improved Documentation
----------------------
- Explicit note that :fixture:`tmpdir` fixture is discouraged in favour of \ 
:fixture:`tmp_path`.

Trivial/Internal Changes
------------------------
- Replace `atomicwrites \ 
<https://github.com/untitaker/python-atomicwrites>`__ dependency on \ 
windows with `os.replace`.
   2022-04-24 18:50:54 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test: updated to 7.1.2

pytest 7.1.2

Bug Fixes

* An unnecessary numpy import inside pytest.approx() was removed.
* Fix comparison of dataclasses with InitVar.
* Increase stacklevel for the NODE_CTOR_FSPATH_ARG deprecation to point to the \ 
user’s code, not pytest.
* Fix a bizarre (and fortunately rare) bug where the temp_path fixture could \ 
raise an internal error while attempting to get the current user’s username.
   2022-04-05 21:11:12 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-test: updated to 7.1.1

pytest 7.1.1 (2022-03-17)
=========================

Bug Fixes
---------
- Fixed a regression in pytest 7.1.0 where some conftest.py files outside of the \ 
source tree (e.g. in the `site-packages` directory) were not picked up.

pytest 7.1.0 (2022-03-13)
=========================

Breaking Changes
----------------

- As per our policy, the following features have been deprecated in the 6.X \ 
series and are now
  removed:

  * ``pytest._fillfuncargs`` function.
  * ``pytest_warning_captured`` hook - use ``pytest_warning_recorded`` instead.
  * ``-k -foobar`` syntax - use ``-k 'not foobar'`` instead.
  * ``-k foobar:`` syntax.
  * ``pytest.collect`` module - import from ``pytest`` directly.

  For more information consult
  `Deprecations and Removals \ 
<https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs.

- Dropped support for Python 3.6, which reached `end-of-life \ 
<https://devguide.python.org/#status-of-python-branches>`__ at 2021-12-23.

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

- Fixed test output for some data types where ``-v`` would show less information.
  Also, when showing diffs for sequences, ``-q`` would produce full diffs \ 
instead of the expected diff.

- pytest now avoids specialized assert formatting when it is detected that the \ 
default ``__eq__`` is overridden in ``attrs`` or ``dataclasses``.

- When ``-vv`` is given on command line, show skipping and xfail reasons in full \ 
instead of truncating them to fit the terminal width.

- More information about the location of resources that led Python to raise \ 
:class:`ResourceWarning` can now
  be obtained by enabling :mod:`tracemalloc`.

  See :ref:`resource-warnings` for more information.

- More types are now accepted in the ``ids`` argument to \ 
``@pytest.mark.parametrize``.
  Previously only `str`, `float`, `int` and `bool` were accepted;
  now `bytes`, `complex`, `re.Pattern`, `Enum` and anything with a `__name__` \ 
are also accepted.

- :func:`pytest.approx` now raises a :class:`TypeError` when given an unordered \ 
sequence (such as :class:`set`).

  Note that this implies that custom classes which only implement ``__iter__`` \ 
and ``__len__`` are no longer supported as they don't guarantee order.

Bug Fixes
---------

- The deprecation of raising :class:`unittest.SkipTest` to skip collection of
  tests during the pytest collection phase is reverted - this is now a supported
  feature again.

- Symbolic link components are no longer resolved in conftest paths.
  This means that if a conftest appears twice in collection tree, using \ 
symlinks, it will be executed twice.
  For example, given

      tests/real/conftest.py
      tests/real/test_it.py
      tests/link -> tests/real

  running ``pytest tests`` now imports the conftest twice, once as \ 
``tests/real/conftest.py`` and once as ``tests/link/conftest.py``.
  This is a fix to match a similar change made to test collection itself in \ 
pytest 6.0 (see :pull:`6523` for details).

- Fixed count of selected tests on terminal collection summary when there were \ 
errors or skipped modules.

  If there were errors or skipped modules on collection, pytest would mistakenly \ 
subtract those from the selected count.

- Fixed regression where ``--import-mode=importlib`` used together with \ 
:envvar:`PYTHONPATH` or :confval:`pythonpath` would cause import errors in test \ 
suites.

- :fixture:`pytester` now requests a :fixture:`monkeypatch` fixture instead of \ 
creating one internally. This solves some issues with tests that involve pytest \ 
environment variables.

- Malformed ``pyproject.toml`` files now produce a clearer error message.
   2022-02-15 17:05:42 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-test: update to 7.0.1.

pytest 7.0.1 (2022-02-11)

Bug Fixes

    #9608: Fix invalid importing of importlib.readers in Python
    3.9.

    #9610: Restore UnitTestFunction.obj to return unbound rather
    than bound method. Fixes a crash during a failed teardown in
    unittest TestCases with non-default __init__. Regressed in
    pytest 7.0.0.

    #9636: The pythonpath plugin was renamed to python_path. This
    avoids a conflict with the pytest-pythonpath plugin.

    #9642: Fix running tests by id with :: in the parametrize
    portion.

    #9643: Delay issuing a PytestWarning about diamond inheritance
    involving Item and Collector so it can be filtered using standard
    warning filters.

pytest 7.0.0 (2022-02-03)

(Please see the full set of changes for this release also in the
7.0.0rc1 notes below) Deprecations

    #9488: If custom subclasses of nodes like pytest.Item override
    the __init__ method, they should take **kwargs. See Constructors
    of custom pytest.Node subclasses should take **kwargs for
    details.

    Note that a deprection warning is only emitted when there is
    a conflict in the arguments pytest expected to pass. This
    deprecation was already part of pytest 7.0.0rc1 but wasn’t
    documented.

Bug Fixes

    #9355: Fixed error message prints function decorators when
    using assert in Python 3.8 and above.

    #9396: Ensure pytest.Config.inifile is available during the
    pytest_cmdline_main hook (regression during 7.0.0rc1).

Improved Documentation

    #9404: Added extra documentation on alternatives to common
    misuses of pytest.warns(None) ahead of its deprecation.

    #9505: Clarify where the configuration files are located. To
    avoid confusions documentation mentions that configuration file
    is located in the root of the repository.

pytest 7.0.0rc1 (2021-12-06)

Breaking Changes

    #7259: The Node.reportinfo() function first return value type
    has been expanded from py.path.local | str to os.PathLike[str]
    | str.

    Most plugins which refer to reportinfo() only define it as part
    of a custom pytest.Item implementation. Since py.path.local is
    a os.PathLike[str], these plugins are unaffacted.

    Plugins and users which call reportinfo(), use the first return
    value and interact with it as a py.path.local, would need to
    adjust by calling py.path.local(fspath). Although preferably,
    avoid the legacy py.path.local and use pathlib.Path, or use
    item.location or item.path, instead.

    Note: pytest was not able to provide a deprecation period for
    this change.

    #8246: --version now writes version information to stdout rather
    than stderr.

    #8733: Drop a workaround for pyreadline that made it work with
    --pdb.

    The workaround was introduced in #1281 in 2015, however since
    then pyreadline seems to have gone unmaintained, is generating
    warnings, and will stop working on Python 3.10.

    #9061: Using pytest.approx() in a boolean context now raises
    an error hinting at the proper usage.

    It is apparently common for users to mistakenly use pytest.approx
    like this:

    assert pytest.approx(actual, expected)

    While the correct usage is:

    assert actual == pytest.approx(expected)

    The new error message helps catch those mistakes.

    #9277: The pytest.Instance collector type has been removed.
    Importing pytest.Instance or _pytest.python.Instance returns
    a dummy type and emits a deprecation warning. See The
    pytest.Instance collector for details.

    #9308: PytestRemovedIn7Warning deprecation warnings are now
    errors by default.

    Following our plan to remove deprecated features with as little
    disruption as possible, all warnings of type PytestRemovedIn7Warning
    now generate errors instead of warning messages by default.

    The affected features will be effectively removed in pytest
    7.1, so please consult the Deprecations and Removals section
    in the docs for directions on how to update existing code.

    In the pytest 7.0.X series, it is possible to change the errors
    back into warnings as a stopgap measure by adding this to your
    pytest.ini file:

    [pytest] filterwarnings =
	ignore::pytest.PytestRemovedIn7Warning

    But this will stop working when pytest 7.1 is released.

    If you have concerns about the removal of a specific feature,
    please add a comment to issue #9308.

Deprecations

    #7259: py.path.local arguments for hooks have been deprecated.
    See the deprecation note for full details.

    py.path.local arguments to Node constructors have been deprecated.
    See the deprecation note for full details.

    Note

    The name of the Node arguments and attributes (the new attribute
    being path) is the opposite of the situation for hooks (the
    old argument being path).

    This is an unfortunate artifact due to historical reasons,
    which should be resolved in future versions as we slowly get
    rid of the py dependency (see issue #9283 for a longer discussion).

    #7469: Directly constructing the following classes is now
    deprecated:

	_pytest.mark.structures.Mark

	_pytest.mark.structures.MarkDecorator

	_pytest.mark.structures.MarkGenerator

	_pytest.python.Metafunc

	_pytest.runner.CallInfo

	_pytest._code.ExceptionInfo

	_pytest.config.argparsing.Parser

	_pytest.config.argparsing.OptionGroup

	_pytest.pytester.HookRecorder

    These constructors have always been considered private, but
    now issue a deprecation warning, which may become a hard error
    in pytest 8.

    #8242: Raising unittest.SkipTest to skip collection of tests
    during the pytest collection phase is deprecated. Use pytest.skip()
    instead.

    Note: This deprecation only relates to using unittest.SkipTest
    during test collection. You are probably not doing that. Ordinary
    usage of unittest.SkipTest / unittest.TestCase.skipTest() /
    unittest.skip() in unittest test cases is fully supported.

    #8315: Several behaviors of Parser.addoption are now scheduled
    for removal in pytest 8 (deprecated since pytest 2.4.0):

	parser.addoption(..., help=".. %default ..") - use %(default)s
	instead.

	parser.addoption(..., type="int/string/float/complex") -
	use type=int etc. instead.

    #8447: Defining a custom pytest node type which is both an
    pytest.Item and a pytest.Collector (e.g. pytest.File) now issues
    a warning. It was never sanely supported and triggers hard to
    debug errors.

    See the deprecation note for full details.

    #8592: pytest_cmdline_preparse has been officially deprecated.
    It will be removed in a future release. Use
    pytest_load_initial_conftests instead.

    See the deprecation note for full details.

    #8645: pytest.warns(None) is now deprecated because many people
    used it to mean “this code does not emit warnings”, but it
    actually had the effect of checking that the code emits at
    least one warning of any type - like pytest.warns() or
    pytest.warns(Warning).

    #8948: pytest.skip(msg=...), pytest.fail(msg=...) and
    pytest.exit(msg=...) signatures now accept a reason argument
    instead of msg. Using msg still works, but is deprecated and
    will be removed in a future release.

    This was changed for consistency with pytest.mark.skip and
    pytest.mark.xfail which both accept reason as an argument.

    #8174: The following changes have been made to types reachable
    through pytest.ExceptionInfo.traceback:

	The path property of _pytest.code.Code returns Path instead
	of py.path.local.

	The path property of _pytest.code.TracebackEntry returns
	Path instead of py.path.local.

    There was no deprecation period for this change (sorry!).

Features

    #5196: Tests are now ordered by definition order in more cases.

    In a class hierarchy, tests from base classes are now consistently
    ordered before tests defined on their subclasses (reverse MRO
    order).

    #7132: Added two environment variables PYTEST_THEME and
    PYTEST_THEME_MODE to let the users customize the pygments theme
    used.

    #7259: Added cache.mkdir(), which is similar to the existing
    cache.makedir(), but returns a pathlib.Path instead of a legacy
    py.path.local.

    Added a paths type to parser.addini(), as in parser.addini("mypaths",
    "my paths", type="paths"), which is similar to the existing
    pathlist, but returns a list of pathlib.Path instead of legacy
    py.path.local.

    #7469: The types of objects used in pytest’s API are now exported
    so they may be used in type annotations.

    The newly-exported types are:

	pytest.Config for Config.

	pytest.Mark for marks.

	pytest.MarkDecorator for mark decorators.

	pytest.MarkGenerator for the pytest.mark singleton.

	pytest.Metafunc for the metafunc argument to the
	pytest_generate_tests hook.

	pytest.CallInfo for the CallInfo type passed to various
	hooks.

	pytest.PytestPluginManager for PytestPluginManager.

	pytest.ExceptionInfo for the ExceptionInfo type returned
	from pytest.raises() and passed to various hooks.

	pytest.Parser for the Parser type passed to the pytest_addoption
	hook.

	pytest.OptionGroup for the OptionGroup type returned from
	the parser.addgroup method.

	pytest.HookRecorder for the HookRecorder type returned from
	Pytester.

	pytest.RecordedHookCall for the RecordedHookCall type
	returned from HookRecorder.

	pytest.RunResult for the RunResult type returned from
	Pytester.

	pytest.LineMatcher for the LineMatcher type used in RunResult
	and others.

	pytest.TestReport for the TestReport type used in various
	hooks.

	pytest.CollectReport for the CollectReport type used in
	various hooks.

    Constructing most of them directly is not supported; they are
    only meant for use in type annotations. Doing so will emit a
    deprecation warning, and may become a hard-error in pytest 8.0.

    Subclassing them is also not supported. This is not currently
    enforced at runtime, but is detected by type-checkers such as
    mypy.

    #7856: –import-mode=importlib now works with features that
    depend on modules being on sys.modules, such as pickle and
    dataclasses.

    #8144: The following hooks now receive an additional pathlib.Path
    argument, equivalent to an existing py.path.local argument:

	pytest_ignore_collect - The collection_path parameter
	(equivalent to existing path parameter).

	pytest_collect_file - The file_path parameter (equivalent
	to existing path parameter).

	pytest_pycollect_makemodule - The module_path parameter
	(equivalent to existing path parameter).

	pytest_report_header - The start_path parameter (equivalent
	to existing startdir parameter).

	pytest_report_collectionfinish - The start_path parameter
	(equivalent to existing startdir parameter).

    Note

    The name of the Node arguments and attributes (the new attribute
    being path) is the opposite of the situation for hooks (the
    old argument being path).

    This is an unfortunate artifact due to historical reasons,
    which should be resolved in future versions as we slowly get
    rid of the py dependency (see issue #9283 for a longer discussion).

    #8251: Implement Node.path as a pathlib.Path. Both the old
    fspath and this new attribute gets set no matter whether path
    or fspath (deprecated) is passed to the constructor. It is a
    replacement for the fspath attribute (which represents the same
    path as py.path.local). While fspath is not deprecated yet due
    to the ongoing migration of methods like reportinfo(), we expect
    to deprecate it in a future release.

    Note

    The name of the Node arguments and attributes (the new attribute
    being path) is the opposite of the situation for hooks (the
    old argument being path).

    This is an unfortunate artifact due to historical reasons,
    which should be resolved in future versions as we slowly get
    rid of the py dependency (see issue #9283 for a longer discussion).

    #8421: pytest.approx() now works on Decimal within mappings/dicts
    and sequences/lists.

    #8606: pytest invocations with --fixtures-per-test and --fixtures
    have been enriched with:

	Fixture location path printed with the fixture name.

	First section of the fixture’s docstring printed under the
	fixture name.

	Whole of fixture’s docstring printed under the fixture name
	using --verbose option.

    #8761: New pytest.version_tuple attribute, which makes it
    simpler for users to do something depending on the pytest
    version (such as declaring hooks which are introduced in later
    versions).

    #8789: Switch TOML parser from toml to tomli for TOML v1.0.0
    support in pyproject.toml.

    #8920: Added pytest.Stash, a facility for plugins to store
    their data on Config and Nodes in a type-safe and conflict-free
    manner. See Storing data on items across hook functions for
    details.

    #8953: RunResult method assert_outcomes now accepts a warnings
    argument to assert the total number of warnings captured.

    #8954: --debug flag now accepts a str file to route debug logs
    into, remains defaulted to pytestdebug.log.

    #9023: Full diffs are now always shown for equality assertions
    of iterables when CI or BUILD_NUMBER is found in the environment,
    even when -v isn’t used.

    #9113: RunResult method assert_outcomes now accepts a deselected
    argument to assert the total number of deselected tests.

    #9114: Added pythonpath setting that adds listed paths to
    sys.path for the duration of the test session. If you currently
    use the pytest-pythonpath or pytest-srcpaths plugins, you should
    be able to replace them with built-in pythonpath setting.

Improvements

    #7480: A deprecation scheduled to be removed in a major version
    X (e.g. pytest 7, 8, 9, …) now uses warning category
    PytestRemovedInXWarning, a subclass of PytestDeprecationWarning,
    instead of PytestDeprecationWarning directly.

    See Backwards Compatibility Policy for more details.

    #7864: Improved error messages when parsing warning filters.

    Previously pytest would show an internal traceback, which
    besides being ugly sometimes would hide the cause of the problem
    (for example an ImportError while importing a specific warning
    type).

    #8335: Improved pytest.approx() assertion messages for sequences
    of numbers.

    The assertion messages now dumps a table with the index and
    the error of each diff. Example:

    >       assert [1, 2, 3, 4] == pytest.approx([1, 3, 3, 5]) E
    assert comparison failed for 2 values:  E         Index |
    Obtained | Expected E         1     | 2        | 3 +- 3.0e-06
    E         3     | 4        | 5 +- 5.0e-06

    #8403: By default, pytest will truncate long strings in assert
    errors so they don’t clutter the output too much, currently at
    240 characters by default.

    However, in some cases the longer output helps, or is even
    crucial, to diagnose a failure. Using -v will now increase the
    truncation threshold to 2400 characters, and -vv or higher will
    disable truncation entirely.

    #8509: Fixed issue where unittest.TestCase.setUpClass() is not
    called when a test has / in its name since pytest 6.2.0.

    This refers to the path part in pytest node IDs, e.g.
    TestClass::test_it in the node ID
    tests/test_file.py::TestClass::test_it.

    Now, instead of assuming that the test name does not contain
    /, it is assumed that test path does not contain ::. We plan
    to hopefully make both of these work in the future.

    #8803: It is now possible to add colors to custom log levels
    on cli log.

    By using add_color_level from a pytest_configure hook, colors
    can be added:

    logging_plugin = config.pluginmanager.get_plugin('logging-plugin')
    logging_plugin.log_cli_handler.formatter.add_color_level(logging.INFO,
    'cyan')
    logging_plugin.log_cli_handler.formatter.add_color_level(logging.SPAM,
    'blue')

    See Customizing Colors for more information.

    #8822: When showing fixture paths in --fixtures or --fixtures-by-test,
    fixtures coming from pytest itself now display an elided path,
    rather than the full path to the file in the site-packages
    directory.

    #8898: Complex numbers are now treated like floats and integers
    when generating parameterization IDs.

    #9062: --stepwise-skip now implicitly enables --stepwise and
    can be used on its own.

    #9205: pytest.Cache.set() now preserves key order when saving
    dicts.

Next | Query returned 129 messages, browsing 11 to 20 | Previous