Preparing release version 5.4.0
This commit is contained in:
		
							parent
							
								
									93aa988e01
								
							
						
					
					
						commit
						c9fd1bdbd6
					
				| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
``pytest.mark.parametrize`` accepts integers for ``ids`` again, converting it to strings.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add support for calling `pytest.xfail()` and `pytest.importorskip()` with doctests.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
Option ``--no-print-logs`` is deprecated and meant to be removed in a future release. If you use ``--no-print-logs``, please try out ``--show-capture`` and
 | 
					 | 
				
			||||||
provide feedback.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
``--show-capture`` command-line option was added in ``pytest 3.5.0`` and allows to specify how to
 | 
					 | 
				
			||||||
display captured output when tests fail: ``no``, ``stdout``, ``stderr``, ``log`` or ``all`` (the default).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
``--trace`` now works with unittests.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fixed some warning reports produced by pytest to point to the correct location of the warning in the user's code.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Use "yellow" main color with any XPASSED tests.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
New :ref:`--capture=tee-sys <capture-method>` option to allow both live printing and capturing of test output.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Revert "A warning is now issued when assertions are made for ``None``".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The warning proved to be less useful than initially expected and had quite a
 | 
					 | 
				
			||||||
few false positive cases.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix ``--last-failed`` to collect new tests from files with known failures.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
``tmpdir_factory.mktemp`` now fails when given absolute and non-normalized paths.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Deprecate the unused/broken `pytest_collect_directory` hook.
 | 
					 | 
				
			||||||
It was misaligned since the removal of the ``Directory`` collector in 2010
 | 
					 | 
				
			||||||
and incorrect/unusable as soon as collection was split from test execution.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Now all arguments to ``@pytest.mark.parametrize`` need to be explicitly declared in the function signature or via ``indirect``.
 | 
					 | 
				
			||||||
Previously it was possible to omit an argument if a fixture with the same name existed, which was just an accident of implementation and was not meant to be a part of the API.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Report ``PytestUnknownMarkWarning`` at the level of the user's code, not ``pytest``'s.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,10 +0,0 @@
 | 
				
			||||||
Deprecate using direct constructors for ``Nodes``.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Instead they are new constructed via ``Node.from_parent``.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This transitional mechanism enables us to detangle the very intensely
 | 
					 | 
				
			||||||
entangled ``Node`` relationships by enforcing more controlled creation/configruation patterns.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
As part of that session/config are already disallowed parameters and as we work on the details we might need disallow a few more as well.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Subclasses are expected to use `super().from_parent` if they intend to expand the creation of `Nodes`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
The ``pytest_warning_captured`` hook now receives a ``location`` parameter with the code location that generated the warning.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix interaction with ``--pdb`` and unittests: do not use unittest's ``TestCase.debug()``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
pytester: the ``testdir`` fixture respects environment settings from the ``monkeypatch`` fixture for inner runs.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
``--fulltrace`` is honored with collection errors.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Matching of ``-k EXPRESSION`` to test names is now case-insensitive.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Fix summary entries appearing twice when ``f/F`` and ``s/S`` report chars were used at the same time in the ``-r`` command-line option (for example ``-rFf``).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The upper case variants were never documented and the preferred form should be the lower case.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Make `--showlocals` work also with `--tb=short`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Remove usage of ``parser`` module, deprecated in Python 3.9.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Plugins specified with ``-p`` are now loaded after internal plugins, which results in their hooks being called *before* the internal ones.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This makes the ``-p`` behavior consistent with ``PYTEST_PLUGINS``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
`--disable-warnings` is honored with `-ra` and `-rA`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Changed default for `-r` to `fE`, which displays failures and errors in the :ref:`short test summary <pytest.detailed_failed_tests_usage>`.  `-rN` can be used to disable it (the old behavior).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
New options have been added to the :confval:`junit_logging` option: ``log``, ``out-err``, and ``all``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Fix bug in the comparison of request key with cached key in fixture.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A construct ``if key == cached_key:`` can fail either because ``==`` is explicitly disallowed, or for, e.g., NumPy arrays, where the result of ``a == b`` cannot generally be converted to `bool`.
 | 
					 | 
				
			||||||
The implemented fix replaces `==` with ``is``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Make capture output streams ``.write()`` method return the same return value from original streams.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix ``EncodedFile.writelines`` to call the underlying buffer's ``writelines`` method.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Fix internal crash when ``faulthandler`` starts initialized
 | 
					 | 
				
			||||||
(for example with ``PYTHONFAULTHANDLER=1`` environment variable set) and ``faulthandler_timeout`` defined
 | 
					 | 
				
			||||||
in the configuration file.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix node ids which contain a parametrized empty-string variable.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Removed the long-deprecated ``pytest_itemstart`` hook.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This hook has been marked as deprecated and not been even called by pytest for over 10 years now.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's :func:`testdir.runpytest <_pytest.pytester.Testdir.runpytest>` etc.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add support for matching lines consecutively with :attr:`LineMatcher <_pytest.pytester.LineMatcher>`'s :func:`~_pytest.pytester.LineMatcher.fnmatch_lines` and :func:`~_pytest.pytester.LineMatcher.re_match_lines`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Code is now highlighted in tracebacks when ``pygments`` is installed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Users are encouraged to install ``pygments`` into their environment and provide feedback, because
 | 
					 | 
				
			||||||
the plan is to make ``pygments`` a regular dependency in the future.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
:func:`pytest.exit() <_pytest.outcomes.exit>` is handled when emitted from the :func:`pytest_sessionfinish <_pytest.hookspec.pytest_sessionfinish>` hook.  This includes quitting from a debugger.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Reversed / fix meaning of "+/-" in error diffs.  "-" means that sth. expected is missing in the result and "+" means that there are unexpected extras in the result.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add list of fixtures to start of fixture chapter.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
The ``cached_result`` attribute of ``FixtureDef`` is now set to ``None`` when
 | 
					 | 
				
			||||||
the result is unavailable, instead of being deleted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If your plugin performs checks like ``hasattr(fixturedef, 'cached_result')``,
 | 
					 | 
				
			||||||
for example in a ``pytest_fixture_post_finalizer`` hook implementation, replace
 | 
					 | 
				
			||||||
it with ``fixturedef.cached_result is not None``. If you ``del`` the attribute,
 | 
					 | 
				
			||||||
set it to ``None`` instead.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Expand first sentence on fixtures into a paragraph.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
When :py:func:`pytest.raises` is used as a function (as opposed to a context manager),
 | 
					 | 
				
			||||||
a `match` keyword argument is now passed through to the tested function. Previously
 | 
					 | 
				
			||||||
it was swallowed and ignored (regression in pytest 5.1.0).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
The ``TerminalReporter.writer`` attribute has been deprecated and should no longer be used. This
 | 
					 | 
				
			||||||
was inadvertently exposed as part of the public API of that plugin and ties it too much
 | 
					 | 
				
			||||||
with ``py.io.TerminalWriter``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Import usage error message with invalid `-o` option.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Do not display empty lines inbetween traceback for unexpected exceptions with doctests.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
The :fixture:`testdir fixture <testdir>` works within doctests now.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Excess warning summaries are now collapsed per file to ensure readable display of warning summaries.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
``pytest.mark.parametrize`` supports iterators and generators for ``ids``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ Release announcements
 | 
				
			||||||
   :maxdepth: 2
 | 
					   :maxdepth: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   release-5.4.0
 | 
				
			||||||
   release-5.3.5
 | 
					   release-5.3.5
 | 
				
			||||||
   release-5.3.4
 | 
					   release-5.3.4
 | 
				
			||||||
   release-5.3.3
 | 
					   release-5.3.3
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,59 @@
 | 
				
			||||||
 | 
					pytest-5.4.0
 | 
				
			||||||
 | 
					=======================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The pytest team is proud to announce the 5.4.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 bug 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
 | 
				
			||||||
 | 
					* Christoph Buelter
 | 
				
			||||||
 | 
					* Christoph Bülter
 | 
				
			||||||
 | 
					* Daniel Arndt
 | 
				
			||||||
 | 
					* Daniel Hahler
 | 
				
			||||||
 | 
					* Holger Kohr
 | 
				
			||||||
 | 
					* Hugo
 | 
				
			||||||
 | 
					* Hugo van Kemenade
 | 
				
			||||||
 | 
					* Jakub Mitoraj
 | 
				
			||||||
 | 
					* Kyle Altendorf
 | 
				
			||||||
 | 
					* Minuddin Ahmed Rana
 | 
				
			||||||
 | 
					* Nathaniel Compton
 | 
				
			||||||
 | 
					* ParetoLife
 | 
				
			||||||
 | 
					* Pauli Virtanen
 | 
				
			||||||
 | 
					* Philipp Loose
 | 
				
			||||||
 | 
					* Ran Benita
 | 
				
			||||||
 | 
					* Ronny Pfannschmidt
 | 
				
			||||||
 | 
					* Stefan Scherfke
 | 
				
			||||||
 | 
					* Stefano Mazzucco
 | 
				
			||||||
 | 
					* TWood67
 | 
				
			||||||
 | 
					* Tobias Schmidt
 | 
				
			||||||
 | 
					* Tomáš Gavenčiak
 | 
				
			||||||
 | 
					* Vinay Calastry
 | 
				
			||||||
 | 
					* Vladyslav Rachek
 | 
				
			||||||
 | 
					* Zac Hatfield-Dodds
 | 
				
			||||||
 | 
					* captainCapitalism
 | 
				
			||||||
 | 
					* cmachalo
 | 
				
			||||||
 | 
					* gftea
 | 
				
			||||||
 | 
					* kpinc
 | 
				
			||||||
 | 
					* rebecca-palmer
 | 
				
			||||||
 | 
					* sdementen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Happy testing,
 | 
				
			||||||
 | 
					The pytest Development Team
 | 
				
			||||||
| 
						 | 
					@ -28,6 +28,223 @@ with advance notice in the **Deprecations** section of releases.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. towncrier release notes start
 | 
					.. towncrier release notes start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pytest 5.4.0 (2020-03-12)
 | 
				
			||||||
 | 
					=========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Breaking Changes
 | 
				
			||||||
 | 
					----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6316 <https://github.com/pytest-dev/pytest/issues/6316>`_: Matching of ``-k EXPRESSION`` to test names is now case-insensitive.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6443 <https://github.com/pytest-dev/pytest/issues/6443>`_: Plugins specified with ``-p`` are now loaded after internal plugins, which results in their hooks being called *before* the internal ones.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This makes the ``-p`` behavior consistent with ``PYTEST_PLUGINS``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6637 <https://github.com/pytest-dev/pytest/issues/6637>`_: Removed the long-deprecated ``pytest_itemstart`` hook.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This hook has been marked as deprecated and not been even called by pytest for over 10 years now.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6673 <https://github.com/pytest-dev/pytest/issues/6673>`_: Reversed / fix meaning of "+/-" in error diffs.  "-" means that sth. expected is missing in the result and "+" means that there are unexpected extras in the result.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6737 <https://github.com/pytest-dev/pytest/issues/6737>`_: The ``cached_result`` attribute of ``FixtureDef`` is now set to ``None`` when
 | 
				
			||||||
 | 
					  the result is unavailable, instead of being deleted.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  If your plugin performs checks like ``hasattr(fixturedef, 'cached_result')``,
 | 
				
			||||||
 | 
					  for example in a ``pytest_fixture_post_finalizer`` hook implementation, replace
 | 
				
			||||||
 | 
					  it with ``fixturedef.cached_result is not None``. If you ``del`` the attribute,
 | 
				
			||||||
 | 
					  set it to ``None`` instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Deprecations
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#3238 <https://github.com/pytest-dev/pytest/issues/3238>`_: Option ``--no-print-logs`` is deprecated and meant to be removed in a future release. If you use ``--no-print-logs``, please try out ``--show-capture`` and
 | 
				
			||||||
 | 
					  provide feedback.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ``--show-capture`` command-line option was added in ``pytest 3.5.0`` and allows to specify how to
 | 
				
			||||||
 | 
					  display captured output when tests fail: ``no``, ``stdout``, ``stderr``, ``log`` or ``all`` (the default).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#571 <https://github.com/pytest-dev/pytest/issues/571>`_: Deprecate the unused/broken `pytest_collect_directory` hook.
 | 
				
			||||||
 | 
					  It was misaligned since the removal of the ``Directory`` collector in 2010
 | 
				
			||||||
 | 
					  and incorrect/unusable as soon as collection was split from test execution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5975 <https://github.com/pytest-dev/pytest/issues/5975>`_: Deprecate using direct constructors for ``Nodes``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Instead they are new constructed via ``Node.from_parent``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This transitional mechanism enables us to detangle the very intensely
 | 
				
			||||||
 | 
					  entangled ``Node`` relationships by enforcing more controlled creation/configruation patterns.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  As part of that session/config are already disallowed parameters and as we work on the details we might need disallow a few more as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Subclasses are expected to use `super().from_parent` if they intend to expand the creation of `Nodes`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6779 <https://github.com/pytest-dev/pytest/issues/6779>`_: The ``TerminalReporter.writer`` attribute has been deprecated and should no longer be used. This
 | 
				
			||||||
 | 
					  was inadvertently exposed as part of the public API of that plugin and ties it too much
 | 
				
			||||||
 | 
					  with ``py.io.TerminalWriter``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Features
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#4597 <https://github.com/pytest-dev/pytest/issues/4597>`_: New :ref:`--capture=tee-sys <capture-method>` option to allow both live printing and capturing of test output.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5712 <https://github.com/pytest-dev/pytest/issues/5712>`_: Now all arguments to ``@pytest.mark.parametrize`` need to be explicitly declared in the function signature or via ``indirect``.
 | 
				
			||||||
 | 
					  Previously it was possible to omit an argument if a fixture with the same name existed, which was just an accident of implementation and was not meant to be a part of the API.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6454 <https://github.com/pytest-dev/pytest/issues/6454>`_: Changed default for `-r` to `fE`, which displays failures and errors in the :ref:`short test summary <pytest.detailed_failed_tests_usage>`.  `-rN` can be used to disable it (the old behavior).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6469 <https://github.com/pytest-dev/pytest/issues/6469>`_: New options have been added to the :confval:`junit_logging` option: ``log``, ``out-err``, and ``all``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6834 <https://github.com/pytest-dev/pytest/issues/6834>`_: Excess warning summaries are now collapsed per file to ensure readable display of warning summaries.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Improvements
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#1857 <https://github.com/pytest-dev/pytest/issues/1857>`_: ``pytest.mark.parametrize`` accepts integers for ``ids`` again, converting it to strings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#449 <https://github.com/pytest-dev/pytest/issues/449>`_: Use "yellow" main color with any XPASSED tests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#4639 <https://github.com/pytest-dev/pytest/issues/4639>`_: Revert "A warning is now issued when assertions are made for ``None``".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The warning proved to be less useful than initially expected and had quite a
 | 
				
			||||||
 | 
					  few false positive cases.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5686 <https://github.com/pytest-dev/pytest/issues/5686>`_: ``tmpdir_factory.mktemp`` now fails when given absolute and non-normalized paths.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5984 <https://github.com/pytest-dev/pytest/issues/5984>`_: The ``pytest_warning_captured`` hook now receives a ``location`` parameter with the code location that generated the warning.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6213 <https://github.com/pytest-dev/pytest/issues/6213>`_: pytester: the ``testdir`` fixture respects environment settings from the ``monkeypatch`` fixture for inner runs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6247 <https://github.com/pytest-dev/pytest/issues/6247>`_: ``--fulltrace`` is honored with collection errors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6384 <https://github.com/pytest-dev/pytest/issues/6384>`_: Make `--showlocals` work also with `--tb=short`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6653 <https://github.com/pytest-dev/pytest/issues/6653>`_: Add support for matching lines consecutively with :attr:`LineMatcher <_pytest.pytester.LineMatcher>`'s :func:`~_pytest.pytester.LineMatcher.fnmatch_lines` and :func:`~_pytest.pytester.LineMatcher.re_match_lines`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6658 <https://github.com/pytest-dev/pytest/issues/6658>`_: Code is now highlighted in tracebacks when ``pygments`` is installed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Users are encouraged to install ``pygments`` into their environment and provide feedback, because
 | 
				
			||||||
 | 
					  the plan is to make ``pygments`` a regular dependency in the future.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6795 <https://github.com/pytest-dev/pytest/issues/6795>`_: Import usage error message with invalid `-o` option.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#759 <https://github.com/pytest-dev/pytest/issues/759>`_: ``pytest.mark.parametrize`` supports iterators and generators for ``ids``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bug Fixes
 | 
				
			||||||
 | 
					---------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#310 <https://github.com/pytest-dev/pytest/issues/310>`_: Add support for calling `pytest.xfail()` and `pytest.importorskip()` with doctests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#3823 <https://github.com/pytest-dev/pytest/issues/3823>`_: ``--trace`` now works with unittests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#4445 <https://github.com/pytest-dev/pytest/issues/4445>`_: Fixed some warning reports produced by pytest to point to the correct location of the warning in the user's code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5301 <https://github.com/pytest-dev/pytest/issues/5301>`_: Fix ``--last-failed`` to collect new tests from files with known failures.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5928 <https://github.com/pytest-dev/pytest/issues/5928>`_: Report ``PytestUnknownMarkWarning`` at the level of the user's code, not ``pytest``'s.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#5991 <https://github.com/pytest-dev/pytest/issues/5991>`_: Fix interaction with ``--pdb`` and unittests: do not use unittest's ``TestCase.debug()``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6334 <https://github.com/pytest-dev/pytest/issues/6334>`_: Fix summary entries appearing twice when ``f/F`` and ``s/S`` report chars were used at the same time in the ``-r`` command-line option (for example ``-rFf``).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The upper case variants were never documented and the preferred form should be the lower case.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6409 <https://github.com/pytest-dev/pytest/issues/6409>`_: Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6454 <https://github.com/pytest-dev/pytest/issues/6454>`_: `--disable-warnings` is honored with `-ra` and `-rA`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6497 <https://github.com/pytest-dev/pytest/issues/6497>`_: Fix bug in the comparison of request key with cached key in fixture.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  A construct ``if key == cached_key:`` can fail either because ``==`` is explicitly disallowed, or for, e.g., NumPy arrays, where the result of ``a == b`` cannot generally be converted to `bool`.
 | 
				
			||||||
 | 
					  The implemented fix replaces `==` with ``is``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6557 <https://github.com/pytest-dev/pytest/issues/6557>`_: Make capture output streams ``.write()`` method return the same return value from original streams.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6566 <https://github.com/pytest-dev/pytest/issues/6566>`_: Fix ``EncodedFile.writelines`` to call the underlying buffer's ``writelines`` method.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6575 <https://github.com/pytest-dev/pytest/issues/6575>`_: Fix internal crash when ``faulthandler`` starts initialized
 | 
				
			||||||
 | 
					  (for example with ``PYTHONFAULTHANDLER=1`` environment variable set) and ``faulthandler_timeout`` defined
 | 
				
			||||||
 | 
					  in the configuration file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6597 <https://github.com/pytest-dev/pytest/issues/6597>`_: Fix node ids which contain a parametrized empty-string variable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6646 <https://github.com/pytest-dev/pytest/issues/6646>`_: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's :func:`testdir.runpytest <_pytest.pytester.Testdir.runpytest>` etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6660 <https://github.com/pytest-dev/pytest/issues/6660>`_: :func:`pytest.exit() <_pytest.outcomes.exit>` is handled when emitted from the :func:`pytest_sessionfinish <_pytest.hookspec.pytest_sessionfinish>` hook.  This includes quitting from a debugger.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6752 <https://github.com/pytest-dev/pytest/issues/6752>`_: When :py:func:`pytest.raises` is used as a function (as opposed to a context manager),
 | 
				
			||||||
 | 
					  a `match` keyword argument is now passed through to the tested function. Previously
 | 
				
			||||||
 | 
					  it was swallowed and ignored (regression in pytest 5.1.0).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6801 <https://github.com/pytest-dev/pytest/issues/6801>`_: Do not display empty lines inbetween traceback for unexpected exceptions with doctests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6802 <https://github.com/pytest-dev/pytest/issues/6802>`_: The :fixture:`testdir fixture <testdir>` works within doctests now.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Improved Documentation
 | 
				
			||||||
 | 
					----------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6696 <https://github.com/pytest-dev/pytest/issues/6696>`_: Add list of fixtures to start of fixture chapter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6742 <https://github.com/pytest-dev/pytest/issues/6742>`_: Expand first sentence on fixtures into a paragraph.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Trivial/Internal Changes
 | 
				
			||||||
 | 
					------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `#6404 <https://github.com/pytest-dev/pytest/issues/6404>`_: Remove usage of ``parser`` module, deprecated in Python 3.9.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pytest 5.3.5 (2020-01-29)
 | 
					pytest 5.3.5 (2020-01-29)
 | 
				
			||||||
=========================
 | 
					=========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -484,8 +484,11 @@ Running it results in some skips if we don't have all the python interpreters in
 | 
				
			||||||
.. code-block:: pytest
 | 
					.. code-block:: pytest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   . $ pytest -rs -q multipython.py
 | 
					   . $ pytest -rs -q multipython.py
 | 
				
			||||||
   ...........................                                          [100%]
 | 
					   ssssssssssss...ssssssssssss                                          [100%]
 | 
				
			||||||
   27 passed in 0.12s
 | 
					   ========================= short test summary info ==========================
 | 
				
			||||||
 | 
					   SKIPPED [12] $REGENDOC_TMPDIR/CWD/multipython.py:29: 'python3.5' not found
 | 
				
			||||||
 | 
					   SKIPPED [12] $REGENDOC_TMPDIR/CWD/multipython.py:29: 'python3.7' not found
 | 
				
			||||||
 | 
					   3 passed, 24 skipped in 0.12s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Indirect parametrization of optional implementations/imports
 | 
					Indirect parametrization of optional implementations/imports
 | 
				
			||||||
--------------------------------------------------------------------
 | 
					--------------------------------------------------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ Install ``pytest``
 | 
				
			||||||
.. code-block:: bash
 | 
					.. code-block:: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $ pytest --version
 | 
					    $ pytest --version
 | 
				
			||||||
    This is pytest version 5.x.y, imported from $PYTHON_PREFIX/lib/python3.7/site-packages/pytest/__init__.py
 | 
					    This is pytest version 5.x.y, imported from $PYTHON_PREFIX/lib/python3.8/site-packages/pytest/__init__.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _`simpletest`:
 | 
					.. _`simpletest`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -442,8 +442,13 @@ additionally it is possible to copy examples for an example folder before runnin
 | 
				
			||||||
      $REGENDOC_TMPDIR/test_example.py:4: PytestExperimentalApiWarning: testdir.copy_example is an experimental api that may change over time
 | 
					      $REGENDOC_TMPDIR/test_example.py:4: PytestExperimentalApiWarning: testdir.copy_example is an experimental api that may change over time
 | 
				
			||||||
        testdir.copy_example("test_example.py")
 | 
					        testdir.copy_example("test_example.py")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test_example.py::test_plugin
 | 
				
			||||||
 | 
					      $PYTHON_PREFIX/lib/python3.8/site-packages/_pytest/terminal.py:287: PytestDeprecationWarning: TerminalReporter.writer attribute is deprecated, use TerminalReporter._tw instead at your own risk.
 | 
				
			||||||
 | 
					      See https://docs.pytest.org/en/latest/deprecations.html#terminalreporter-writer for more information.
 | 
				
			||||||
 | 
					        warnings.warn(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -- Docs: https://docs.pytest.org/en/latest/warnings.html
 | 
					    -- Docs: https://docs.pytest.org/en/latest/warnings.html
 | 
				
			||||||
    ======================= 2 passed, 1 warning in 0.12s =======================
 | 
					    ====================== 2 passed, 2 warnings in 0.12s =======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more information about the result object that ``runpytest()`` returns, and
 | 
					For more information about the result object that ``runpytest()`` returns, and
 | 
				
			||||||
the methods that it provides please check out the :py:class:`RunResult
 | 
					the methods that it provides please check out the :py:class:`RunResult
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue