pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/py-test py-test: updated to 6.2.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a387249a8242
branches:  trunk
changeset: 443483:a387249a8242
user:      adam <adam%pkgsrc.org@localhost>
date:      Mon Dec 14 06:21:38 2020 +0000

description:
py-test: updated to 6.2.0

pytest 6.2.0 (2020-12-12)
=========================

Breaking Changes
----------------
- pytest now supports python3.6+ only.


Deprecations
------------
- Directly constructing/calling the following classes/functions is now deprecated:
  - ``_pytest.cacheprovider.Cache``
  - ``_pytest.cacheprovider.Cache.for_config()``
  - ``_pytest.cacheprovider.Cache.clear_cache()``
  - ``_pytest.cacheprovider.Cache.cache_dir_from_config()``
  - ``_pytest.capture.CaptureFixture``
  - ``_pytest.fixtures.FixtureRequest``
  - ``_pytest.fixtures.SubRequest``
  - ``_pytest.logging.LogCaptureFixture``
  - ``_pytest.pytester.Pytester``
  - ``_pytest.pytester.Testdir``
  - ``_pytest.recwarn.WarningsRecorder``
  - ``_pytest.recwarn.WarningsChecker``
  - ``_pytest.tmpdir.TempPathFactory``
  - ``_pytest.tmpdir.TempdirFactory``

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

- The ``--strict`` command-line option has been deprecated, use ``--strict-markers`` instead.

  We have plans to maybe in the future to reintroduce ``--strict`` and make it an encompassing flag for all strictness
  related options (``--strict-markers`` and ``--strict-config`` at the moment, more might be introduced in the future).

- The ``@pytest.yield_fixture`` decorator/function is now deprecated. Use :func:`pytest.fixture` instead.

  ``yield_fixture`` has been an alias for ``fixture`` for a very long time, so can be search/replaced safely.


Features
--------
- pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8.
  See :ref:`unraisable` for more information.
- New :fixture:`pytester` fixture, which is identical to :fixture:`testdir` but its methods return :class:`pathlib.Path` when appropriate instead of ``py.path.local``.

  This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future.

  Internally, the old :class:`Testdir <_pytest.pytester.Testdir>` is now a thin wrapper around :class:`Pytester <_pytest.pytester.Pytester>`, preserving the old interface.

- A new hook was added, `pytest_markeval_namespace` which should return a dictionary.
  This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers.

  Pseudo example

  ``conftest.py``:

  .. code-block:: python

     def pytest_markeval_namespace():
         return {"color": "red"}

  ``test_func.py``:

  .. code-block:: python

     @pytest.mark.skipif("color == 'blue'", reason="Color is not red")
     def test_func():
         assert False

- It is now possible to construct a :class:`~pytest.MonkeyPatch` object directly as ``pytest.MonkeyPatch()``,
  in cases when the :fixture:`monkeypatch` fixture cannot be used. Previously some users imported it
  from the private `_pytest.monkeypatch.MonkeyPatch` namespace.

  Additionally, :meth:`MonkeyPatch.context <pytest.MonkeyPatch.context>` is now a classmethod,
  and can be used as ``with MonkeyPatch.context() as mp: ...``. This is the recommended way to use
  ``MonkeyPatch`` directly, since unlike the ``monkeypatch`` fixture, an instance created directly
  is not ``undo()``-ed automatically.


Improvements
------------
- Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the 
existing ``str()`` method.
- Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS".
- The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions.
  The newly-exported types are:
  - ``pytest.FixtureRequest`` for the :fixture:`request` fixture.
  - ``pytest.Cache`` for the :fixture:`cache` fixture.
  - ``pytest.CaptureFixture[str]`` for the :fixture:`capfd` and :fixture:`capsys` fixtures.
  - ``pytest.CaptureFixture[bytes]`` for the :fixture:`capfdbinary` and :fixture:`capsysbinary` fixtures.
  - ``pytest.LogCaptureFixture`` for the :fixture:`caplog` fixture.
  - ``pytest.Pytester`` for the :fixture:`pytester` fixture.
  - ``pytest.Testdir`` for the :fixture:`testdir` fixture.
  - ``pytest.TempdirFactory`` for the :fixture:`tmpdir_factory` fixture.
  - ``pytest.TempPathFactory`` for the :fixture:`tmp_path_factory` fixture.
  - ``pytest.MonkeyPatch`` for the :fixture:`monkeypatch` fixture.
  - ``pytest.WarningsRecorder`` for the :fixture:`recwarn` fixture.

  Constructing them is not supported (except for `MonkeyPatch`); they are only meant for use in type annotations.
  Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0.

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

- When a comparison between :func:`namedtuple <collections.namedtuple>` instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes.
- :meth:`Node.warn <_pytest.nodes.Node.warn>` now permits any subclass of :class:`Warning`, not just :class:`PytestWarning <pytest.PytestWarning>`.
- Improved reporting when using ``--collected-only``. It will now show the number of collected tests in the summary stats.
- Use strict equality comparison for non-numeric types in :func:`pytest.approx` instead of
  raising :class:`TypeError`.

  This was the undocumented behavior before 3.7, but is now officially a supported feature.

- New ``--sw-skip`` argument which is a shorthand for ``--stepwise-skip``.
- Added ``'node_modules'`` to default value for :confval:`norecursedirs`.
- :meth:`doClassCleanups <unittest.TestCase.doClassCleanups>` (introduced in :mod:`unittest` in Python and 3.8) is now called appropriately.


Bug Fixes
---------
- Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures.
- Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0.
-  Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in 
use in long running test suites.
-  Fixed a crash or hang in :meth:`pytester.spawn <_pytest.pytester.Pytester.spawn>` when the :mod:`readline` module is involved.
- Fixed handling of recursive symlinks when collecting tests.
- Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0.
- Fixed only one doctest being collected when using ``pytest --doctest-modules path/to/an/__init__.py``.


Improved Documentation
----------------------
- Add more information and use cases about skipping doctests.
- Classes which should not be inherited from are now marked ``final class`` in the API reference.
- ``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``"string"``.
- In pull request section, ask to commit after editing changelog and authors file.


Trivial/Internal Changes
------------------------
- The ``attrs`` dependency requirement is now >=19.2.0 instead of >=17.4.0.
- `.pyc` files created by pytest's assertion rewriting now conform to the newer PEP-552 format on Python>=3.7.
  (These files are internal and only interpreted by pytest itself.)

diffstat:

 devel/py-test/Makefile |   4 ++--
 devel/py-test/PLIST    |  11 ++++++++++-
 devel/py-test/distinfo |  10 +++++-----
 3 files changed, 17 insertions(+), 8 deletions(-)

diffs (66 lines):

diff -r 36cbbf6b1f0a -r a387249a8242 devel/py-test/Makefile
--- a/devel/py-test/Makefile    Mon Dec 14 06:16:31 2020 +0000
+++ b/devel/py-test/Makefile    Mon Dec 14 06:21:38 2020 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.97 2020/10/29 08:19:38 adam Exp $
+# $NetBSD: Makefile,v 1.98 2020/12/14 06:21:38 adam Exp $
 
-DISTNAME=      pytest-6.1.2
+DISTNAME=      pytest-6.2.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME:S/py//}
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=p/pytest/}
diff -r 36cbbf6b1f0a -r a387249a8242 devel/py-test/PLIST
--- a/devel/py-test/PLIST       Mon Dec 14 06:16:31 2020 +0000
+++ b/devel/py-test/PLIST       Mon Dec 14 06:21:38 2020 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.19 2020/10/22 09:45:20 adam Exp $
+@comment $NetBSD: PLIST,v 1.20 2020/12/14 06:21:38 adam Exp $
 bin/py.test-${PYVERSSUFFIX}
 bin/pytest-${PYVERSSUFFIX}
 ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
@@ -135,6 +135,9 @@
 ${PYSITELIB}/_pytest/pytester.py
 ${PYSITELIB}/_pytest/pytester.pyc
 ${PYSITELIB}/_pytest/pytester.pyo
+${PYSITELIB}/_pytest/pytester_assertions.py
+${PYSITELIB}/_pytest/pytester_assertions.pyc
+${PYSITELIB}/_pytest/pytester_assertions.pyo
 ${PYSITELIB}/_pytest/python.py
 ${PYSITELIB}/_pytest/python.pyc
 ${PYSITELIB}/_pytest/python.pyo
@@ -168,6 +171,9 @@
 ${PYSITELIB}/_pytest/terminal.py
 ${PYSITELIB}/_pytest/terminal.pyc
 ${PYSITELIB}/_pytest/terminal.pyo
+${PYSITELIB}/_pytest/threadexception.py
+${PYSITELIB}/_pytest/threadexception.pyc
+${PYSITELIB}/_pytest/threadexception.pyo
 ${PYSITELIB}/_pytest/timing.py
 ${PYSITELIB}/_pytest/timing.pyc
 ${PYSITELIB}/_pytest/timing.pyo
@@ -177,6 +183,9 @@
 ${PYSITELIB}/_pytest/unittest.py
 ${PYSITELIB}/_pytest/unittest.pyc
 ${PYSITELIB}/_pytest/unittest.pyo
+${PYSITELIB}/_pytest/unraisableexception.py
+${PYSITELIB}/_pytest/unraisableexception.pyc
+${PYSITELIB}/_pytest/unraisableexception.pyo
 ${PYSITELIB}/_pytest/warning_types.py
 ${PYSITELIB}/_pytest/warning_types.pyc
 ${PYSITELIB}/_pytest/warning_types.pyo
diff -r 36cbbf6b1f0a -r a387249a8242 devel/py-test/distinfo
--- a/devel/py-test/distinfo    Mon Dec 14 06:16:31 2020 +0000
+++ b/devel/py-test/distinfo    Mon Dec 14 06:21:38 2020 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.84 2020/10/29 08:19:38 adam Exp $
+$NetBSD: distinfo,v 1.85 2020/12/14 06:21:38 adam Exp $
 
-SHA1 (pytest-6.1.2.tar.gz) = aef7f0b5a3a5be7dc8c4a65b95d000f95df8b525
-RMD160 (pytest-6.1.2.tar.gz) = 9aff532c77af8e73891b59325ceaae7173d35377
-SHA512 (pytest-6.1.2.tar.gz) = 6335e994c5273881c8d1c334fe6bfa9cd0a3e5c251f3d6a9332f7f7c1427e6560ff48d8f235b307ea5eb53491072daf30c41f566bb67b304354fd88d286c61b1
-Size (pytest-6.1.2.tar.gz) = 1084943 bytes
+SHA1 (pytest-6.2.0.tar.gz) = 96cb3d1cc9e0850ef754eeca7bcbbd05504b6752
+RMD160 (pytest-6.2.0.tar.gz) = 672b5a960976e556cba812f07a691130ede66289
+SHA512 (pytest-6.2.0.tar.gz) = 58315bb5f9a696f5196da08912a0f32fd367ea11987d37ff74b0d00d961bb706e0d3604bc7c25a762e4ee66bd46ef4389b50eca11b3109406c169aefff395d51
+Size (pytest-6.2.0.tar.gz) = 1101619 bytes



Home | Main Index | Thread Index | Old Index