Skip to content

Commit

Permalink
Merge #118
Browse files Browse the repository at this point in the history
118: Update pytest to 7.0.0 r=aragilar a=pyup-bot


This PR updates [pytest](https://pypi.org/project/pytest) from **6.2.4** to **7.0.0**.



<details>
  <summary>Changelog</summary>
  
  
   ### 7.0.0
   ```
   =========================

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

Deprecations
------------

- `9488 &lt;https://github.com/pytest-dev/pytest/issues/9488&gt;`_: If custom subclasses of nodes like :class:`pytest.Item` override the
  ``__init__`` method, they should take ``**kwargs``. See
  :ref:`uncooperative-constructors-deprecated` 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&#x27;t documented.



Bug Fixes
---------

- `9355 &lt;https://github.com/pytest-dev/pytest/issues/9355&gt;`_: Fixed error message prints function decorators when using assert in Python 3.8 and above.


- `9396 &lt;https://github.com/pytest-dev/pytest/issues/9396&gt;`_: Ensure :attr:`pytest.Config.inifile` is available during the :func:`pytest_cmdline_main &lt;_pytest.hookspec.pytest_cmdline_main&gt;` hook (regression during ``7.0.0rc1``).



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

- `9404 &lt;https://github.com/pytest-dev/pytest/issues/9404&gt;`_: Added extra documentation on alternatives to common misuses of `pytest.warns(None)` ahead of its deprecation.


- `9505 &lt;https://github.com/pytest-dev/pytest/issues/9505&gt;`_: Clarify where the configuration files are located. To avoid confusions documentation mentions
  that configuration file is located in the root of the repository.



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

- `9521 &lt;https://github.com/pytest-dev/pytest/issues/9521&gt;`_: Add test coverage to assertion rewrite path.
   ```
   
  
  
   ### 7.0.0rc1
   ```
   ============================

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

- `7259 &lt;https://github.com/pytest-dev/pytest/issues/7259&gt;`_: The :ref:`Node.reportinfo() &lt;non-python tests&gt;` 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 :class:`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 &lt;https://github.com/pytest-dev/pytest/issues/8246&gt;`_: ``--version`` now writes version information to ``stdout`` rather than ``stderr``.


- `8733 &lt;https://github.com/pytest-dev/pytest/issues/8733&gt;`_: Drop a workaround for `pyreadline &lt;https://github.com/pyreadline/pyreadline&gt;`__ that made it work with ``--pdb``.

  The workaround was introduced in `1281 &lt;https://github.com/pytest-dev/pytest/pull/1281&gt;`__ in 2015, however since then
  `pyreadline seems to have gone unmaintained &lt;https://github.com/pyreadline/pyreadline/issues/58&gt;`__, is `generating
  warnings &lt;https://github.com/pytest-dev/pytest/issues/8847&gt;`__, and will stop working on Python 3.10.


- `9061 &lt;https://github.com/pytest-dev/pytest/issues/9061&gt;`_: Using :func:`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:

  .. code-block:: python

      assert pytest.approx(actual, expected)

  While the correct usage is:

  .. code-block:: python

      assert actual == pytest.approx(expected)

  The new error message helps catch those mistakes.


- `9277 &lt;https://github.com/pytest-dev/pytest/issues/9277&gt;`_: 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 :ref:`instance-collector-deprecation` for details.


- `9308 &lt;https://github.com/pytest-dev/pytest/issues/9308&gt;`_: **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
  :ref:`deprecations` 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:

  .. code-block:: ini

      [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 &lt;https://github.com/pytest-dev/pytest/issues/7259&gt;`_: ``py.path.local`` arguments for hooks have been deprecated. See :ref:`the deprecation note &lt;legacy-path-hooks-deprecated&gt;` for full details.

  ``py.path.local`` arguments to Node constructors have been deprecated. See :ref:`the deprecation note &lt;node-ctor-fspath-deprecation&gt;` for full details.

  .. note::
      The name of the :class:`~_pytest.nodes.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 :pypi:`py`
      dependency (see :issue:`9283` for a longer discussion).


- `7469 &lt;https://github.com/pytest-dev/pytest/issues/7469&gt;`_: 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 &lt;https://github.com/pytest-dev/pytest/issues/8242&gt;`_: Raising :class:`unittest.SkipTest` to skip collection of tests during the
  pytest collection phase is deprecated. Use :func:`pytest.skip` instead.

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


- `8315 &lt;https://github.com/pytest-dev/pytest/issues/8315&gt;`_: Several behaviors of :meth:`Parser.addoption &lt;pytest.Parser.addoption&gt;` are now
  scheduled for removal in pytest 8 (deprecated since pytest 2.4.0):

  - ``parser.addoption(..., help=&quot;.. %default ..&quot;)`` - use ``%(default)s`` instead.
  - ``parser.addoption(..., type=&quot;int/string/float/complex&quot;)`` - use ``type=int`` etc. instead.


- `8447 &lt;https://github.com/pytest-dev/pytest/issues/8447&gt;`_: Defining a custom pytest node type which is both an :class:`pytest.Item &lt;Item&gt;` and a :class:`pytest.Collector &lt;Collector&gt;` (e.g. :class:`pytest.File &lt;File&gt;`) now issues a warning.
  It was never sanely supported and triggers hard to debug errors.

  See :ref:`the deprecation note &lt;diamond-inheritance-deprecated&gt;` for full details.


- `8592 &lt;https://github.com/pytest-dev/pytest/issues/8592&gt;`_: 🪝`pytest_cmdline_preparse` has been officially deprecated.  It will be removed in a future release.  Use 🪝`pytest_load_initial_conftests` instead.

  See :ref:`the deprecation note &lt;cmdline-preparse-deprecated&gt;` for full details.


- `8645 &lt;https://github.com/pytest-dev/pytest/issues/8645&gt;`_: :func:`pytest.warns(None) &lt;pytest.warns&gt;` is now deprecated because many people used
  it to mean &quot;this code does not emit warnings&quot;, 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 &lt;https://github.com/pytest-dev/pytest/issues/8948&gt;`_: :func:`pytest.skip(msg=...) &lt;pytest.skip&gt;`, :func:`pytest.fail(msg=...) &lt;pytest.fail&gt;` and :func:`pytest.exit(msg=...) &lt;pytest.exit&gt;`
  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 :func:`pytest.mark.skip &lt;pytest.mark.skip&gt;` and  :func:`pytest.mark.xfail &lt;pytest.mark.xfail&gt;` which both accept
  ``reason`` as an argument.

- `8174 &lt;https://github.com/pytest-dev/pytest/issues/8174&gt;`_: The following changes have been made to types reachable through :attr:`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 &lt;https://github.com/pytest-dev/pytest/issues/5196&gt;`_: 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 &lt;https://github.com/pytest-dev/pytest/issues/7132&gt;`_: Added two environment variables :envvar:`PYTEST_THEME` and :envvar:`PYTEST_THEME_MODE` to let the users customize the pygments theme used.


- `7259 &lt;https://github.com/pytest-dev/pytest/issues/7259&gt;`_: Added :meth:`cache.mkdir() &lt;pytest.Cache.mkdir&gt;`, which is similar to the existing :meth:`cache.makedir() &lt;pytest.Cache.makedir&gt;`,
  but returns a :class:`pathlib.Path` instead of a legacy ``py.path.local``.

  Added a ``paths`` type to :meth:`parser.addini() &lt;pytest.Parser.addini&gt;`,
  as in ``parser.addini(&quot;mypaths&quot;, &quot;my paths&quot;, type=&quot;paths&quot;)``,
  which is similar to the existing ``pathlist``,
  but returns a list of :class:`pathlib.Path` instead of legacy ``py.path.local``.


- `7469 &lt;https://github.com/pytest-dev/pytest/issues/7469&gt;`_: The types of objects used in pytest&#x27;s API are now exported so they may be used in type annotations.

  The newly-exported types are:

  - ``pytest.Config`` for :class:`Config &lt;pytest.Config&gt;`.
  - ``pytest.Mark`` for :class:`marks &lt;pytest.Mark&gt;`.
  - ``pytest.MarkDecorator`` for :class:`mark decorators &lt;pytest.MarkDecorator&gt;`.
  - ``pytest.MarkGenerator`` for the :class:`pytest.mark &lt;pytest.MarkGenerator&gt;` singleton.
  - ``pytest.Metafunc`` for the :class:`metafunc &lt;pytest.MarkGenerator&gt;` argument to the 🪝`pytest_generate_tests` hook.
  - ``pytest.CallInfo`` for the :class:`CallInfo &lt;pytest.CallInfo&gt;` type passed to various hooks.
  - ``pytest.PytestPluginManager`` for :class:`PytestPluginManager &lt;pytest.PytestPluginManager&gt;`.
  - ``pytest.ExceptionInfo`` for the :class:`ExceptionInfo &lt;pytest.ExceptionInfo&gt;` type returned from :func:`pytest.raises` and passed to various hooks.
  - ``pytest.Parser`` for the :class:`Parser &lt;pytest.Parser&gt;` type passed to the 🪝`pytest_addoption` hook.
  - ``pytest.OptionGroup`` for the :class:`OptionGroup &lt;pytest.OptionGroup&gt;` type returned from the :func:`parser.addgroup &lt;pytest.Parser.getgroup&gt;` method.
  - ``pytest.HookRecorder`` for the :class:`HookRecorder &lt;pytest.HookRecorder&gt;` type returned from :class:`~pytest.Pytester`.
  - ``pytest.RecordedHookCall`` for the :class:`RecordedHookCall &lt;pytest.HookRecorder&gt;` type returned from :class:`~pytest.HookRecorder`.
  - ``pytest.RunResult`` for the :class:`RunResult &lt;pytest.RunResult&gt;` type returned from :class:`~pytest.Pytester`.
  - ``pytest.LineMatcher`` for the :class:`LineMatcher &lt;pytest.RunResult&gt;` type used in :class:`~pytest.RunResult` and others.
  - ``pytest.TestReport`` for the :class:`TestReport &lt;pytest.TestReport&gt;` type used in various hooks.
  - ``pytest.CollectReport`` for the :class:`CollectReport &lt;pytest.CollectReport&gt;` 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 &lt;https://github.com/pytest-dev/pytest/issues/7856&gt;`_: :ref:`--import-mode=importlib &lt;import-modes&gt;` now works with features that
  depend on modules being on :py:data:`sys.modules`, such as :mod:`pickle` and :mod:`dataclasses`.


- `8144 &lt;https://github.com/pytest-dev/pytest/issues/8144&gt;`_: 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 :class:`~_pytest.nodes.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 :pypi:`py`
      dependency (see :issue:`9283` for a longer discussion).


- `8251 &lt;https://github.com/pytest-dev/pytest/issues/8251&gt;`_: 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 :meth:`~_pytest.Item.reportinfo`, we expect to deprecate it in a future release.

  .. note::
      The name of the :class:`~_pytest.nodes.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 :pypi:`py`
      dependency (see :issue:`9283` for a longer discussion).


- `8421 &lt;https://github.com/pytest-dev/pytest/issues/8421&gt;`_: :func:`pytest.approx` now works on :class:`~decimal.Decimal` within mappings/dicts and sequences/lists.


- `8606 &lt;https://github.com/pytest-dev/pytest/issues/8606&gt;`_: 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&#x27;s docstring printed under the fixture name.
  - Whole of fixture&#x27;s docstring printed under the fixture name using ``--verbose`` option.


- `8761 &lt;https://github.com/pytest-dev/pytest/issues/8761&gt;`_: New :ref:`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 &lt;https://github.com/pytest-dev/pytest/issues/8789&gt;`_: Switch TOML parser from ``toml`` to ``tomli`` for TOML v1.0.0 support in ``pyproject.toml``.


- `8920 &lt;https://github.com/pytest-dev/pytest/issues/8920&gt;`_: Added :class:`pytest.Stash`, a facility for plugins to store their data on :class:`~pytest.Config` and :class:`~_pytest.nodes.Node`\s in a type-safe and conflict-free manner.
  See :ref:`plugin-stash` for details.


- `8953 &lt;https://github.com/pytest-dev/pytest/issues/8953&gt;`_: :class:`RunResult &lt;_pytest.pytester.RunResult&gt;` method :meth:`assert_outcomes &lt;_pytest.pytester.RunResult.assert_outcomes&gt;` now accepts a
  ``warnings`` argument to assert the total number of warnings captured.


- `8954 &lt;https://github.com/pytest-dev/pytest/issues/8954&gt;`_: ``--debug`` flag now accepts a :class:`str` file to route debug logs into, remains defaulted to `pytestdebug.log`.


- `9023 &lt;https://github.com/pytest-dev/pytest/issues/9023&gt;`_: 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&#x27;t
  used.


- `9113 &lt;https://github.com/pytest-dev/pytest/issues/9113&gt;`_: :class:`RunResult &lt;_pytest.pytester.RunResult&gt;` method :meth:`assert_outcomes &lt;_pytest.pytester.RunResult.assert_outcomes&gt;` now accepts a
  ``deselected`` argument to assert the total number of deselected tests.


- `9114 &lt;https://github.com/pytest-dev/pytest/issues/9114&gt;`_: Added :confval:`pythonpath` setting that adds listed paths to :data:`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 &lt;https://github.com/pytest-dev/pytest/issues/7480&gt;`_: 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 :class:`~pytest.PytestDeprecationWarning`,
  instead of :class:`PytestDeprecationWarning` directly.

  See :ref:`backwards-compatibility` for more details.


- `7864 &lt;https://github.com/pytest-dev/pytest/issues/7864&gt;`_: 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 &lt;https://github.com/pytest-dev/pytest/issues/8335&gt;`_: Improved :func:`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::

      &gt;       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 &lt;https://github.com/pytest-dev/pytest/issues/8403&gt;`_: By default, pytest will truncate long strings in assert errors so they don&#x27;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 &lt;https://github.com/pytest-dev/pytest/issues/8509&gt;`_: Fixed issue where :meth:`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 &lt;https://github.com/pytest-dev/pytest/issues/8803&gt;`_: It is now possible to add colors to custom log levels on cli log.

  By using :func:`add_color_level &lt;_pytest.logging.add_color_level&gt;` from a ``pytest_configure`` hook, colors can be added::

      logging_plugin = config.pluginmanager.get_plugin(&#x27;logging-plugin&#x27;)
      logging_plugin.log_cli_handler.formatter.add_color_level(logging.INFO, &#x27;cyan&#x27;)
      logging_plugin.log_cli_handler.formatter.add_color_level(logging.SPAM, &#x27;blue&#x27;)

  See :ref:`log_colors` for more information.


- `8822 &lt;https://github.com/pytest-dev/pytest/issues/8822&gt;`_: 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 &lt;https://github.com/pytest-dev/pytest/issues/8898&gt;`_: Complex numbers are now treated like floats and integers when generating parameterization IDs.


- `9062 &lt;https://github.com/pytest-dev/pytest/issues/9062&gt;`_: ``--stepwise-skip`` now implicitly enables ``--stepwise`` and can be used on its own.


- `9205 &lt;https://github.com/pytest-dev/pytest/issues/9205&gt;`_: :meth:`pytest.Cache.set` now preserves key order when saving dicts.



Bug Fixes
---------

- `7124 &lt;https://github.com/pytest-dev/pytest/issues/7124&gt;`_: Fixed an issue where ``__main__.py`` would raise an ``ImportError`` when ``--doctest-modules`` was provided.


- `8061 &lt;https://github.com/pytest-dev/pytest/issues/8061&gt;`_: Fixed failing ``staticmethod`` test cases if they are inherited from a parent test class.


- `8192 &lt;https://github.com/pytest-dev/pytest/issues/8192&gt;`_: ``testdir.makefile`` now silently accepts values which don&#x27;t start with ``.`` to maintain backward compatibility with older pytest versions.

  ``pytester.makefile`` now issues a clearer error if the ``.`` is missing in the ``ext`` argument.


- `8258 &lt;https://github.com/pytest-dev/pytest/issues/8258&gt;`_: Fixed issue where pytest&#x27;s ``faulthandler`` support would not dump traceback on crashes
  if the :mod:`faulthandler` module was already enabled during pytest startup (using
  ``python -X dev -m pytest`` for example).


- `8317 &lt;https://github.com/pytest-dev/pytest/issues/8317&gt;`_: Fixed an issue where illegal directory characters derived from ``getpass.getuser()`` raised an ``OSError``.


- `8367 &lt;https://github.com/pytest-dev/pytest/issues/8367&gt;`_: Fix ``Class.from_parent`` so it forwards extra keyword arguments to the constructor.


- `8377 &lt;https://github.com/pytest-dev/pytest/issues/8377&gt;`_: The test selection options ``pytest -k`` and ``pytest -m`` now support matching
  names containing forward slash (``/``) characters.


- `8384 &lt;https://github.com/pytest-dev/pytest/issues/8384&gt;`_: The ``pytest.mark.skip`` decorator now correctly handles its arguments. When the ``reason`` argument is accidentally given both positional and as a keyword (e.g. because it was confused with ``skipif``), a ``TypeError`` now occurs. Before, such tests were silently skipped, and the positional argument ignored. Additionally, ``reason`` is now documented correctly as positional or keyword (rather than keyword-only).


- `8394 &lt;https://github.com/pytest-dev/pytest/issues/8394&gt;`_: Use private names for internal fixtures that handle classic setup/teardown so that they don&#x27;t show up with the default ``--fixtures`` invocation (but they still show up with ``--fixtures -v``).


- `8456 &lt;https://github.com/pytest-dev/pytest/issues/8456&gt;`_: The :confval:`required_plugins` config option now works correctly when pre-releases of plugins are installed, rather than falsely claiming that those plugins aren&#x27;t installed at all.


- `8464 &lt;https://github.com/pytest-dev/pytest/issues/8464&gt;`_: ``-c &lt;config file&gt;`` now also properly defines ``rootdir`` as the directory that contains ``&lt;config file&gt;``.


- `8503 &lt;https://github.com/pytest-dev/pytest/issues/8503&gt;`_: :meth:`pytest.MonkeyPatch.syspath_prepend` no longer fails when
  ``setuptools`` is not installed.
  It now only calls :func:`pkg_resources.fixup_namespace_packages` if
  ``pkg_resources`` was previously imported, because it is not needed otherwise.


- `8548 &lt;https://github.com/pytest-dev/pytest/issues/8548&gt;`_: Introduce fix to handle precision width in ``log-cli-format`` in turn to fix output coloring for certain formats.


- `8796 &lt;https://github.com/pytest-dev/pytest/issues/8796&gt;`_: Fixed internal error when skipping doctests.


- `8983 &lt;https://github.com/pytest-dev/pytest/issues/8983&gt;`_: The test selection options ``pytest -k`` and ``pytest -m`` now support matching names containing backslash (`\\`) characters.
  Backslashes are treated literally, not as escape characters (the values being matched against are already escaped).


- `8990 &lt;https://github.com/pytest-dev/pytest/issues/8990&gt;`_: Fix `pytest -vv` crashing with an internal exception `AttributeError: &#x27;str&#x27; object has no attribute &#x27;relative_to&#x27;` in some cases.


- `9077 &lt;https://github.com/pytest-dev/pytest/issues/9077&gt;`_: Fixed confusing error message when ``request.fspath`` / ``request.path`` was accessed from a session-scoped fixture.


- `9131 &lt;https://github.com/pytest-dev/pytest/issues/9131&gt;`_: Fixed the URL used by ``--pastebin`` to use `bpa.st &lt;http://bpa.st&gt;`__.


- `9163 &lt;https://github.com/pytest-dev/pytest/issues/9163&gt;`_: The end line number and end column offset are now properly set for rewritten assert statements.


- `9169 &lt;https://github.com/pytest-dev/pytest/issues/9169&gt;`_: Support for the ``files`` API from ``importlib.resources`` within rewritten files.


- `9272 &lt;https://github.com/pytest-dev/pytest/issues/9272&gt;`_: The nose compatibility module-level fixtures `setup()` and `teardown()` are now only called once per module, instead of for each test function.
  They are now called even if object-level `setup`/`teardown` is defined.



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

- `4320 &lt;https://github.com/pytest-dev/pytest/issues/4320&gt;`_: Improved docs for `pytester.copy_example`.


- `5105 &lt;https://github.com/pytest-dev/pytest/issues/5105&gt;`_: Add automatically generated :ref:`plugin-list`. The list is updated on a periodic schedule.


- `8337 &lt;https://github.com/pytest-dev/pytest/issues/8337&gt;`_: Recommend `numpy.testing &lt;https://numpy.org/doc/stable/reference/routines.testing.html&gt;`__ module on :func:`pytest.approx` documentation.


- `8655 &lt;https://github.com/pytest-dev/pytest/issues/8655&gt;`_: Help text for ``--pdbcls`` more accurately reflects the option&#x27;s behavior.


- `9210 &lt;https://github.com/pytest-dev/pytest/issues/9210&gt;`_: Remove incorrect docs about ``confcutdir`` being a configuration option: it can only be set through the ``--confcutdir`` command-line option.


- `9242 &lt;https://github.com/pytest-dev/pytest/issues/9242&gt;`_: Upgrade readthedocs configuration to use a `newer Ubuntu version &lt;https://blog.readthedocs.com/new-build-specification/&gt;`__` with better unicode support for PDF docs.


- `9341 &lt;https://github.com/pytest-dev/pytest/issues/9341&gt;`_: Various methods commonly used for :ref:`non-python tests` are now correctly documented in the reference docs. They were undocumented previously.



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

- `8133 &lt;https://github.com/pytest-dev/pytest/issues/8133&gt;`_: Migrate to ``setuptools_scm`` 6.x to use ``SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST`` for more robust release tooling.


- `8174 &lt;https://github.com/pytest-dev/pytest/issues/8174&gt;`_: The following changes have been made to internal pytest types/functions:

  - The ``_pytest.code.getfslineno()`` function returns ``Path`` instead of ``py.path.local``.
  - The ``_pytest.python.path_matches_patterns()`` function takes ``Path`` instead of ``py.path.local``.
  - The ``_pytest._code.Traceback.cut()`` function accepts any ``os.PathLike[str]``, not just ``py.path.local``.


- `8248 &lt;https://github.com/pytest-dev/pytest/issues/8248&gt;`_: Internal Restructure: let ``python.PyObjMixin`` inherit from ``nodes.Node`` to carry over typing information.


- `8432 &lt;https://github.com/pytest-dev/pytest/issues/8432&gt;`_: Improve error message when :func:`pytest.skip` is used at module level without passing `allow_module_level=True`.


- `8818 &lt;https://github.com/pytest-dev/pytest/issues/8818&gt;`_: Ensure ``regendoc`` opts out of ``TOX_ENV`` cachedir selection to ensure independent example test runs.


- `8913 &lt;https://github.com/pytest-dev/pytest/issues/8913&gt;`_: The private ``CallSpec2._arg2scopenum`` attribute has been removed after an internal refactoring.


- `8967 &lt;https://github.com/pytest-dev/pytest/issues/8967&gt;`_: 🪝`pytest_assertion_pass` is no longer considered experimental and
  future changes to it will be considered more carefully.


- `9202 &lt;https://github.com/pytest-dev/pytest/issues/9202&gt;`_: Add github action to upload coverage report to codecov instead of bash uploader.


- `9225 &lt;https://github.com/pytest-dev/pytest/issues/9225&gt;`_: Changed the command used to create sdist and wheel artifacts: using the build package instead of setup.py.


- `9351 &lt;https://github.com/pytest-dev/pytest/issues/9351&gt;`_: Correct minor typos in doc/en/example/special.rst.
   ```
   
  
  
   ### 6.2.5
   ```
   =========================


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

- :issue:`8494`: Python 3.10 is now supported.


- :issue:`9040`: Enable compatibility with ``pluggy 1.0`` or later.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: https://docs.pytest.org/en/latest/
</details>



Co-authored-by: pyup-bot <[email protected]>
  • Loading branch information
bors[bot] and pyup-bot authored Feb 5, 2022
2 parents 9307f73 + 24ae21a commit c8406cd
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pytest==6.2.4
pytest==7.0.0
pytest-cov==2.12.1

0 comments on commit c8406cd

Please sign in to comment.