Preparing release version 4.5.0
This commit is contained in:
parent
b709e61892
commit
63fe547d9f
133
CHANGELOG.rst
133
CHANGELOG.rst
|
@ -18,6 +18,139 @@ with advance notice in the **Deprecations** section of releases.
|
||||||
|
|
||||||
.. towncrier release notes start
|
.. towncrier release notes start
|
||||||
|
|
||||||
|
pytest 4.5.0 (2019-05-11)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- `#4826 <https://github.com/pytest-dev/pytest/issues/4826>`_: A warning is now emitted when unknown marks are used as a decorator.
|
||||||
|
This is often due to a typo, which can lead to silently broken tests.
|
||||||
|
|
||||||
|
|
||||||
|
- `#4907 <https://github.com/pytest-dev/pytest/issues/4907>`_: Show XFail reason as part of JUnitXML message field.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5013 <https://github.com/pytest-dev/pytest/issues/5013>`_: Messages from crash reports are displayed within test summaries now, truncated to the terminal width.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5023 <https://github.com/pytest-dev/pytest/issues/5023>`_: New flag ``--strict-markers`` that triggers an error when unknown markers (e.g. those not registered using the `markers option`_ in the configuration file) are used in the test suite.
|
||||||
|
|
||||||
|
The existing ``--strict`` option has the same behavior currently, but can be augmented in the future for additional checks.
|
||||||
|
|
||||||
|
.. _`markers option`: https://docs.pytest.org/en/latest/reference.html#confval-markers
|
||||||
|
|
||||||
|
|
||||||
|
- `#5026 <https://github.com/pytest-dev/pytest/issues/5026>`_: Assertion failure messages for sequences and dicts contain the number of different items now.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5034 <https://github.com/pytest-dev/pytest/issues/5034>`_: Improve reporting with ``--lf`` and ``--ff`` (run-last-failure).
|
||||||
|
|
||||||
|
|
||||||
|
- `#5035 <https://github.com/pytest-dev/pytest/issues/5035>`_: The ``--cache-show`` option/action accepts an optional glob to show only matching cache entries.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5059 <https://github.com/pytest-dev/pytest/issues/5059>`_: Standard input (stdin) can be given to pytester's ``Testdir.run()`` and ``Testdir.popen()``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5068 <https://github.com/pytest-dev/pytest/issues/5068>`_: The ``-r`` option learnt about ``A`` to display all reports (including passed ones) in the short test summary.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5108 <https://github.com/pytest-dev/pytest/issues/5108>`_: The short test summary is displayed after passes with output (``-rP``).
|
||||||
|
|
||||||
|
|
||||||
|
- `#5172 <https://github.com/pytest-dev/pytest/issues/5172>`_: The ``--last-failed`` (``--lf``) option got smarter and will now skip entire files if all tests
|
||||||
|
of that test file have passed in previous runs, greatly speeding up collection.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5177 <https://github.com/pytest-dev/pytest/issues/5177>`_: Introduce new specific warning ``PytestWarning`` subclasses to make it easier to filter warnings based on the class, rather than on the message. The new subclasses are:
|
||||||
|
|
||||||
|
|
||||||
|
* ``PytestAssertRewriteWarning``
|
||||||
|
|
||||||
|
* ``PytestCacheWarning``
|
||||||
|
|
||||||
|
* ``PytestCollectionWarning``
|
||||||
|
|
||||||
|
* ``PytestConfigWarning``
|
||||||
|
|
||||||
|
* ``PytestUnhandledCoroutineWarning``
|
||||||
|
|
||||||
|
* ``PytestUnknownMarkWarning``
|
||||||
|
|
||||||
|
|
||||||
|
- `#5202 <https://github.com/pytest-dev/pytest/issues/5202>`_: New ``record_testsuite_property`` session-scoped fixture allows users to log ``<property>`` tags at the ``testsuite``
|
||||||
|
level with the ``junitxml`` plugin.
|
||||||
|
|
||||||
|
The generated XML is compatible with the latest xunit standard, contrary to
|
||||||
|
the properties recorded by ``record_property`` and ``record_xml_attribute``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5214 <https://github.com/pytest-dev/pytest/issues/5214>`_: The default logging format has been changed to improve readability. Here is an
|
||||||
|
example of a previous logging message::
|
||||||
|
|
||||||
|
test_log_cli_enabled_disabled.py 3 CRITICAL critical message logged by test
|
||||||
|
|
||||||
|
This has now become::
|
||||||
|
|
||||||
|
CRITICAL root:test_log_cli_enabled_disabled.py:3 critical message logged by test
|
||||||
|
|
||||||
|
The formatting can be changed through the `log_format <https://docs.pytest.org/en/latest/reference.html#confval-log_format>`__ configuration option.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5220 <https://github.com/pytest-dev/pytest/issues/5220>`_: ``--fixtures`` now also shows fixture scope for scopes other than ``"function"``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
- `#5113 <https://github.com/pytest-dev/pytest/issues/5113>`_: Deselected items from plugins using ``pytest_collect_modifyitems`` as a hookwrapper are correctly reported now.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5144 <https://github.com/pytest-dev/pytest/issues/5144>`_: With usage errors ``exitstatus`` is set to ``EXIT_USAGEERROR`` in the ``pytest_sessionfinish`` hook now as expected.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5235 <https://github.com/pytest-dev/pytest/issues/5235>`_: ``outcome.exit`` is not used with ``EOF`` in the pdb wrapper anymore, but only with ``quit``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- `#4935 <https://github.com/pytest-dev/pytest/issues/4935>`_: Expand docs on registering marks and the effect of ``--strict``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Trivial/Internal Changes
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- `#4942 <https://github.com/pytest-dev/pytest/issues/4942>`_: ``logging.raiseExceptions`` is not set to ``False`` anymore.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5013 <https://github.com/pytest-dev/pytest/issues/5013>`_: pytest now depends on `wcwidth <https://pypi.org/project/wcwidth>`__ to properly track unicode character sizes for more precise terminal output.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5059 <https://github.com/pytest-dev/pytest/issues/5059>`_: pytester's ``Testdir.popen()`` uses ``stdout`` and ``stderr`` via keyword arguments with defaults now (``subprocess.PIPE``).
|
||||||
|
|
||||||
|
|
||||||
|
- `#5069 <https://github.com/pytest-dev/pytest/issues/5069>`_: The code for the short test summary in the terminal was moved to the terminal plugin.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5082 <https://github.com/pytest-dev/pytest/issues/5082>`_: Improved validation of kwargs for various methods in the pytester plugin.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5202 <https://github.com/pytest-dev/pytest/issues/5202>`_: ``record_property`` now emits a ``PytestWarning`` when used with ``junit_family=xunit2``: the fixture generates
|
||||||
|
``property`` tags as children of ``testcase``, which is not permitted according to the most
|
||||||
|
`recent schema <https://github.com/jenkinsci/xunit-plugin/blob/master/
|
||||||
|
src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd>`__.
|
||||||
|
|
||||||
|
|
||||||
|
- `#5239 <https://github.com/pytest-dev/pytest/issues/5239>`_: Pin ``pluggy`` to ``< 1.0`` so we don't update to ``1.0`` automatically when
|
||||||
|
it gets released: there are planned breaking changes, and we want to ensure
|
||||||
|
pytest properly supports ``pluggy 1.0``.
|
||||||
|
|
||||||
|
|
||||||
pytest 4.4.2 (2019-05-08)
|
pytest 4.4.2 (2019-05-08)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
A warning is now emitted when unknown marks are used as a decorator.
|
|
||||||
This is often due to a typo, which can lead to silently broken tests.
|
|
|
@ -1 +0,0 @@
|
||||||
Show XFail reason as part of JUnitXML message field.
|
|
|
@ -1 +0,0 @@
|
||||||
Expand docs on registering marks and the effect of ``--strict``.
|
|
|
@ -1 +0,0 @@
|
||||||
``logging.raiseExceptions`` is not set to ``False`` anymore.
|
|
|
@ -1 +0,0 @@
|
||||||
Messages from crash reports are displayed within test summaries now, truncated to the terminal width.
|
|
|
@ -1 +0,0 @@
|
||||||
pytest now depends on `wcwidth <https://pypi.org/project/wcwidth>`__ to properly track unicode character sizes for more precise terminal output.
|
|
|
@ -1,5 +0,0 @@
|
||||||
New flag ``--strict-markers`` that triggers an error when unknown markers (e.g. those not registered using the `markers option`_ in the configuration file) are used in the test suite.
|
|
||||||
|
|
||||||
The existing ``--strict`` option has the same behavior currently, but can be augmented in the future for additional checks.
|
|
||||||
|
|
||||||
.. _`markers option`: https://docs.pytest.org/en/latest/reference.html#confval-markers
|
|
|
@ -1 +0,0 @@
|
||||||
Assertion failure messages for sequences and dicts contain the number of different items now.
|
|
|
@ -1 +0,0 @@
|
||||||
Improve reporting with ``--lf`` and ``--ff`` (run-last-failure).
|
|
|
@ -1 +0,0 @@
|
||||||
The ``--cache-show`` option/action accepts an optional glob to show only matching cache entries.
|
|
|
@ -1 +0,0 @@
|
||||||
Standard input (stdin) can be given to pytester's ``Testdir.run()`` and ``Testdir.popen()``.
|
|
|
@ -1 +0,0 @@
|
||||||
pytester's ``Testdir.popen()`` uses ``stdout`` and ``stderr`` via keyword arguments with defaults now (``subprocess.PIPE``).
|
|
|
@ -1 +0,0 @@
|
||||||
The ``-r`` option learnt about ``A`` to display all reports (including passed ones) in the short test summary.
|
|
|
@ -1 +0,0 @@
|
||||||
The code for the short test summary in the terminal was moved to the terminal plugin.
|
|
|
@ -1 +0,0 @@
|
||||||
Improved validation of kwargs for various methods in the pytester plugin.
|
|
|
@ -1 +0,0 @@
|
||||||
The short test summary is displayed after passes with output (``-rP``).
|
|
|
@ -1 +0,0 @@
|
||||||
Deselected items from plugins using ``pytest_collect_modifyitems`` as a hookwrapper are correctly reported now.
|
|
|
@ -1 +0,0 @@
|
||||||
With usage errors ``exitstatus`` is set to ``EXIT_USAGEERROR`` in the ``pytest_sessionfinish`` hook now as expected.
|
|
|
@ -1,2 +0,0 @@
|
||||||
The ``--last-failed`` (``--lf``) option got smarter and will now skip entire files if all tests
|
|
||||||
of that test file have passed in previous runs, greatly speeding up collection.
|
|
|
@ -1,14 +0,0 @@
|
||||||
Introduce new specific warning ``PytestWarning`` subclasses to make it easier to filter warnings based on the class, rather than on the message. The new subclasses are:
|
|
||||||
|
|
||||||
|
|
||||||
* ``PytestAssertRewriteWarning``
|
|
||||||
|
|
||||||
* ``PytestCacheWarning``
|
|
||||||
|
|
||||||
* ``PytestCollectionWarning``
|
|
||||||
|
|
||||||
* ``PytestConfigWarning``
|
|
||||||
|
|
||||||
* ``PytestUnhandledCoroutineWarning``
|
|
||||||
|
|
||||||
* ``PytestUnknownMarkWarning``
|
|
|
@ -1,5 +0,0 @@
|
||||||
New ``record_testsuite_property`` session-scoped fixture allows users to log ``<property>`` tags at the ``testsuite``
|
|
||||||
level with the ``junitxml`` plugin.
|
|
||||||
|
|
||||||
The generated XML is compatible with the latest xunit standard, contrary to
|
|
||||||
the properties recorded by ``record_property`` and ``record_xml_attribute``.
|
|
|
@ -1,4 +0,0 @@
|
||||||
``record_property`` now emits a ``PytestWarning`` when used with ``junit_family=xunit2``: the fixture generates
|
|
||||||
``property`` tags as children of ``testcase``, which is not permitted according to the most
|
|
||||||
`recent schema <https://github.com/jenkinsci/xunit-plugin/blob/master/
|
|
||||||
src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd>`__.
|
|
|
@ -1,10 +0,0 @@
|
||||||
The default logging format has been changed to improve readability. Here is an
|
|
||||||
example of a previous logging message::
|
|
||||||
|
|
||||||
test_log_cli_enabled_disabled.py 3 CRITICAL critical message logged by test
|
|
||||||
|
|
||||||
This has now become::
|
|
||||||
|
|
||||||
CRITICAL root:test_log_cli_enabled_disabled.py:3 critical message logged by test
|
|
||||||
|
|
||||||
The formatting can be changed through the `log_format <https://docs.pytest.org/en/latest/reference.html#confval-log_format>`__ configuration option.
|
|
|
@ -1 +0,0 @@
|
||||||
``--fixtures`` now also shows fixture scope for scopes other than ``"function"``.
|
|
|
@ -1 +0,0 @@
|
||||||
``outcome.exit`` is not used with ``EOF`` in the pdb wrapper anymore, but only with ``quit``.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Pin ``pluggy`` to ``< 1.0`` so we don't update to ``1.0`` automatically when
|
|
||||||
it gets released: there are planned breaking changes, and we want to ensure
|
|
||||||
pytest properly supports ``pluggy 1.0``.
|
|
|
@ -6,6 +6,7 @@ Release announcements
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
release-4.5.0
|
||||||
release-4.4.2
|
release-4.4.2
|
||||||
release-4.4.1
|
release-4.4.1
|
||||||
release-4.4.0
|
release-4.4.0
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
pytest-4.5.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
The pytest team is proud to announce the 4.5.0 release!
|
||||||
|
|
||||||
|
pytest is a mature Python testing tool with more than a 2000 tests
|
||||||
|
against itself, passing on many different interpreters and platforms.
|
||||||
|
|
||||||
|
This release contains a number of bugs fixes and improvements, so users are encouraged
|
||||||
|
to take a look at the CHANGELOG:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/latest/changelog.html
|
||||||
|
|
||||||
|
For complete documentation, please visit:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/latest/
|
||||||
|
|
||||||
|
As usual, you can upgrade from pypi via:
|
||||||
|
|
||||||
|
pip install -U pytest
|
||||||
|
|
||||||
|
Thanks to all who contributed to this release, among them:
|
||||||
|
|
||||||
|
* Anthony Sottile
|
||||||
|
* Bruno Oliveira
|
||||||
|
* Daniel Hahler
|
||||||
|
* Floris Bruynooghe
|
||||||
|
* Pulkit Goyal
|
||||||
|
* Samuel Searles-Bryant
|
||||||
|
* Zac Hatfield-Dodds
|
||||||
|
* Zac-HD
|
||||||
|
|
||||||
|
|
||||||
|
Happy testing,
|
||||||
|
The Pytest Development Team
|
|
@ -85,6 +85,20 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
The fixture is callable with ``(name, value)``, with value being
|
The fixture is callable with ``(name, value)``, with value being
|
||||||
automatically xml-encoded
|
automatically xml-encoded
|
||||||
|
|
||||||
|
record_testsuite_property [session scope]
|
||||||
|
Records a new ``<property>`` tag as child of the root ``<testsuite>``. This is suitable to
|
||||||
|
writing global information regarding the entire test suite, and is compatible with ``xunit2`` JUnit family.
|
||||||
|
|
||||||
|
This is a ``session``-scoped fixture which is called with ``(name, value)``. Example:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
def test_foo(record_testsuite_property):
|
||||||
|
record_testsuite_property("ARCH", "PPC")
|
||||||
|
record_testsuite_property("STORAGE_TYPE", "CEPH")
|
||||||
|
|
||||||
|
``name`` must be a string, ``value`` will be converted to a string and properly xml-escaped.
|
||||||
|
|
||||||
caplog
|
caplog
|
||||||
Access and control log capturing.
|
Access and control log capturing.
|
||||||
|
|
||||||
|
|
|
@ -606,7 +606,7 @@ We can run this:
|
||||||
file $REGENDOC_TMPDIR/b/test_error.py, line 1
|
file $REGENDOC_TMPDIR/b/test_error.py, line 1
|
||||||
def test_root(db): # no db here, will error out
|
def test_root(db): # no db here, will error out
|
||||||
E fixture 'db' not found
|
E fixture 'db' not found
|
||||||
> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
|
> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
|
||||||
> use 'pytest --fixtures [testpath]' for help on them.
|
> use 'pytest --fixtures [testpath]' for help on them.
|
||||||
|
|
||||||
$REGENDOC_TMPDIR/b/test_error.py:1
|
$REGENDOC_TMPDIR/b/test_error.py:1
|
||||||
|
|
Loading…
Reference in New Issue