Merge pull request #7797 from pytest-dev/release-6.1.0
Prepare release 6.1.0 (cherry picked from commit 08a1ab3a8acdfdeffd8f07058b44743df1d90150)
This commit is contained in:
parent
0b327cc75b
commit
19c78ab574
|
@ -1 +0,0 @@
|
||||||
Removed faq.rst and its reference in contents.rst.
|
|
|
@ -1,20 +0,0 @@
|
||||||
Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value.
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
# conftest.py
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(params=[1, 2])
|
|
||||||
def foo(request):
|
|
||||||
return request.param
|
|
||||||
|
|
||||||
|
|
||||||
# test_foo.py
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def foo(foo):
|
|
||||||
return foo * 2
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fixed an internal error crash with ``IndexError: list index out of range`` when
|
|
||||||
collecting a module which starts with a decorated function, the decorator
|
|
||||||
raises, and assertion rewriting is enabled.
|
|
|
@ -1,18 +0,0 @@
|
||||||
As per our policy, the following features which have been deprecated in the 5.X series are now
|
|
||||||
removed:
|
|
||||||
|
|
||||||
* The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute.
|
|
||||||
|
|
||||||
* ``@pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead.
|
|
||||||
|
|
||||||
* Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead.
|
|
||||||
|
|
||||||
* The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file.
|
|
||||||
|
|
||||||
* The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly.
|
|
||||||
|
|
||||||
* The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin instead.
|
|
||||||
|
|
||||||
|
|
||||||
For more information consult
|
|
||||||
`Deprecations and Removals <https://docs.pytest.org/en/stable/deprecations.html>`__ in the docs.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``.
|
|
||||||
|
|
||||||
This also fixes a number of long standing issues: `#2891 <https://github.com/pytest-dev/pytest/issues/2891>`__, `#7620 <https://github.com/pytest-dev/pytest/issues/7620>`__, `#7426 <https://github.com/pytest-dev/pytest/issues/7426>`__.
|
|
|
@ -1 +0,0 @@
|
||||||
The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly.
|
|
|
@ -1,6 +0,0 @@
|
||||||
The ``pytest._fillfuncargs`` function is deprecated. This function was kept
|
|
||||||
for backward compatibility with an older plugin.
|
|
||||||
|
|
||||||
It's functionality is not meant to be used directly, but if you must replace
|
|
||||||
it, use `function._request._fillfixtures()` instead, though note this is not
|
|
||||||
a public API and may break in the future.
|
|
|
@ -1,5 +0,0 @@
|
||||||
The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'``
|
|
||||||
instead.
|
|
||||||
|
|
||||||
The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue
|
|
||||||
if you use this and want a replacement.
|
|
|
@ -1,2 +0,0 @@
|
||||||
The :func:`pytest_warning_captured <_pytest.hookspec.pytest_warning_captured>` hook is deprecated in favor
|
|
||||||
of :func:`pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>`, and will be removed in a future version.
|
|
|
@ -1,3 +0,0 @@
|
||||||
The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``.
|
|
||||||
The order of attributes in XML elements might differ. Some unneeded escaping is
|
|
||||||
no longer performed.
|
|
|
@ -1 +0,0 @@
|
||||||
When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
|
|
|
@ -1 +0,0 @@
|
||||||
The dependency on the ``more-itertools`` package has been removed.
|
|
|
@ -1 +0,0 @@
|
||||||
pylint shouldn't complain anymore about unimplemented abstract methods when inheriting from :ref:`File <non-python tests>`.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``).
|
|
|
@ -1,2 +0,0 @@
|
||||||
The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple,
|
|
||||||
but should behave like one in all respects. This was done for technical reasons.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``.
|
|
|
@ -1,3 +0,0 @@
|
||||||
The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated;
|
|
||||||
use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead.
|
|
||||||
This should work on all pytest versions.
|
|
|
@ -1 +0,0 @@
|
||||||
New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``.
|
|
|
@ -1,6 +0,0 @@
|
||||||
When collecting tests, pytest finds test classes and functions by examining the
|
|
||||||
attributes of python objects (modules, classes and instances). To speed up this
|
|
||||||
process, pytest now ignores builtin attributes (like ``__class__``,
|
|
||||||
``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and
|
|
||||||
:confval:`python_functions` configuration options and without passing them to plugins
|
|
||||||
using the :func:`pytest_pycollect_makeitem <_pytest.hookspec.pytest_pycollect_makeitem>` hook.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`.
|
|
||||||
These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes,
|
|
||||||
and should be preferred over them when possible.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Public classes which are not designed to be inherited from are now marked `@final <https://docs.python.org/3/library/typing.html#typing.final>`_.
|
|
||||||
Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime.
|
|
||||||
Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future.
|
|
|
@ -6,6 +6,7 @@ Release announcements
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
release-6.1.0
|
||||||
release-6.0.2
|
release-6.0.2
|
||||||
release-6.0.1
|
release-6.0.1
|
||||||
release-6.0.0
|
release-6.0.0
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
pytest-6.1.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
The pytest team is proud to announce the 6.1.0 release!
|
||||||
|
|
||||||
|
This release contains new features, improvements, bug fixes, and breaking changes, so users
|
||||||
|
are encouraged to take a look at the CHANGELOG carefully:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/stable/changelog.html
|
||||||
|
|
||||||
|
For complete documentation, please visit:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/stable/
|
||||||
|
|
||||||
|
As usual, you can upgrade from PyPI via:
|
||||||
|
|
||||||
|
pip install -U pytest
|
||||||
|
|
||||||
|
Thanks to all of the contributors to this release:
|
||||||
|
|
||||||
|
* Anthony Sottile
|
||||||
|
* Bruno Oliveira
|
||||||
|
* C. Titus Brown
|
||||||
|
* Drew Devereux
|
||||||
|
* Faris A Chugthai
|
||||||
|
* Florian Bruhin
|
||||||
|
* Hugo van Kemenade
|
||||||
|
* Hynek Schlawack
|
||||||
|
* Joseph Lucas
|
||||||
|
* Kamran Ahmad
|
||||||
|
* Mattreex
|
||||||
|
* Maximilian Cosmo Sitter
|
||||||
|
* Ran Benita
|
||||||
|
* Rüdiger Busche
|
||||||
|
* Sam Estep
|
||||||
|
* Sorin Sbarnea
|
||||||
|
* Thomas Grainger
|
||||||
|
* Vipul Kumar
|
||||||
|
* Yutaro Ikeda
|
||||||
|
* hp310780
|
||||||
|
|
||||||
|
|
||||||
|
Happy testing,
|
||||||
|
The pytest Development Team
|
|
@ -23,7 +23,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
cache.get(key, default)
|
cache.get(key, default)
|
||||||
cache.set(key, value)
|
cache.set(key, value)
|
||||||
|
|
||||||
Keys must be a ``/`` separated value, where the first part is usually the
|
Keys must be ``/`` separated strings, where the first part is usually the
|
||||||
name of your plugin or application to avoid clashes with other cache users.
|
name of your plugin or application to avoid clashes with other cache users.
|
||||||
|
|
||||||
Values can be any object handled by the json stdlib module.
|
Values can be any object handled by the json stdlib module.
|
||||||
|
@ -57,7 +57,8 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
``out`` and ``err`` will be ``byte`` objects.
|
``out`` and ``err`` will be ``byte`` objects.
|
||||||
|
|
||||||
doctest_namespace [session scope]
|
doctest_namespace [session scope]
|
||||||
Fixture that returns a :py:class:`dict` that will be injected into the namespace of doctests.
|
Fixture that returns a :py:class:`dict` that will be injected into the
|
||||||
|
namespace of doctests.
|
||||||
|
|
||||||
pytestconfig [session scope]
|
pytestconfig [session scope]
|
||||||
Session-scoped fixture that returns the :class:`_pytest.config.Config` object.
|
Session-scoped fixture that returns the :class:`_pytest.config.Config` object.
|
||||||
|
@ -89,8 +90,10 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
automatically XML-encoded.
|
automatically XML-encoded.
|
||||||
|
|
||||||
record_testsuite_property [session scope]
|
record_testsuite_property [session scope]
|
||||||
Records a new ``<property>`` tag as child of the root ``<testsuite>``. This is suitable to
|
Record a new ``<property>`` tag as child of the root ``<testsuite>``.
|
||||||
writing global information regarding the entire test suite, and is compatible with ``xunit2`` JUnit family.
|
|
||||||
|
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:
|
This is a ``session``-scoped fixture which is called with ``(name, value)``. Example:
|
||||||
|
|
||||||
|
@ -102,6 +105,12 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
|
|
||||||
``name`` must be a string, ``value`` will be converted to a string and properly xml-escaped.
|
``name`` must be a string, ``value`` will be converted to a string and properly xml-escaped.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Currently this fixture **does not work** with the
|
||||||
|
`pytest-xdist <https://github.com/pytest-dev/pytest-xdist>`__ plugin. See issue
|
||||||
|
`#7767 <https://github.com/pytest-dev/pytest/issues/7767>`__ for details.
|
||||||
|
|
||||||
caplog
|
caplog
|
||||||
Access and control log capturing.
|
Access and control log capturing.
|
||||||
|
|
||||||
|
@ -114,8 +123,10 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
* caplog.clear() -> clear captured records and formatted log output string
|
* caplog.clear() -> clear captured records and formatted log output string
|
||||||
|
|
||||||
monkeypatch
|
monkeypatch
|
||||||
The returned ``monkeypatch`` fixture provides these
|
A convenient fixture for monkey-patching.
|
||||||
helper methods to modify objects, dictionaries or os.environ::
|
|
||||||
|
The fixture provides these methods to modify objects, dictionaries or
|
||||||
|
os.environ::
|
||||||
|
|
||||||
monkeypatch.setattr(obj, name, value, raising=True)
|
monkeypatch.setattr(obj, name, value, raising=True)
|
||||||
monkeypatch.delattr(obj, name, raising=True)
|
monkeypatch.delattr(obj, name, raising=True)
|
||||||
|
@ -126,10 +137,9 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
monkeypatch.syspath_prepend(path)
|
monkeypatch.syspath_prepend(path)
|
||||||
monkeypatch.chdir(path)
|
monkeypatch.chdir(path)
|
||||||
|
|
||||||
All modifications will be undone after the requesting
|
All modifications will be undone after the requesting test function or
|
||||||
test function or fixture has finished. The ``raising``
|
fixture has finished. The ``raising`` parameter determines if a KeyError
|
||||||
parameter determines if a KeyError or AttributeError
|
or AttributeError will be raised if the set/deletion operation has no target.
|
||||||
will be raised if the set/deletion operation has no target.
|
|
||||||
|
|
||||||
recwarn
|
recwarn
|
||||||
Return a :class:`WarningsRecorder` instance that records all warnings emitted by test functions.
|
Return a :class:`WarningsRecorder` instance that records all warnings emitted by test functions.
|
||||||
|
@ -140,30 +150,28 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
tmpdir_factory [session scope]
|
tmpdir_factory [session scope]
|
||||||
Return a :class:`_pytest.tmpdir.TempdirFactory` instance for the test session.
|
Return a :class:`_pytest.tmpdir.TempdirFactory` instance for the test session.
|
||||||
|
|
||||||
|
|
||||||
tmp_path_factory [session scope]
|
tmp_path_factory [session scope]
|
||||||
Return a :class:`_pytest.tmpdir.TempPathFactory` instance for the test session.
|
Return a :class:`_pytest.tmpdir.TempPathFactory` instance for the test session.
|
||||||
|
|
||||||
|
|
||||||
tmpdir
|
tmpdir
|
||||||
Return a temporary directory path object
|
Return a temporary directory path object which is unique to each test
|
||||||
which is unique to each test function invocation,
|
function invocation, created as a sub directory of the base temporary
|
||||||
created as a sub directory of the base temporary
|
directory.
|
||||||
directory. The returned object is a `py.path.local`_
|
|
||||||
path object.
|
The returned object is a `py.path.local`_ path object.
|
||||||
|
|
||||||
.. _`py.path.local`: https://py.readthedocs.io/en/latest/path.html
|
.. _`py.path.local`: https://py.readthedocs.io/en/latest/path.html
|
||||||
|
|
||||||
tmp_path
|
tmp_path
|
||||||
Return a temporary directory path object
|
Return a temporary directory path object which is unique to each test
|
||||||
which is unique to each test function invocation,
|
function invocation, created as a sub directory of the base temporary
|
||||||
created as a sub directory of the base temporary
|
directory.
|
||||||
directory. The returned object is a :class:`pathlib.Path`
|
|
||||||
object.
|
The returned object is a :class:`pathlib.Path` object.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
in python < 3.6 this is a pathlib2.Path
|
In python < 3.6 this is a pathlib2.Path.
|
||||||
|
|
||||||
|
|
||||||
no tests ran in 0.12s
|
no tests ran in 0.12s
|
||||||
|
|
|
@ -28,6 +28,166 @@ with advance notice in the **Deprecations** section of releases.
|
||||||
|
|
||||||
.. towncrier release notes start
|
.. towncrier release notes start
|
||||||
|
|
||||||
|
pytest 6.1.0 (2020-09-26)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Breaking Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- `#5585 <https://github.com/pytest-dev/pytest/issues/5585>`_: As per our policy, the following features which have been deprecated in the 5.X series are now
|
||||||
|
removed:
|
||||||
|
|
||||||
|
* The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute.
|
||||||
|
|
||||||
|
* ``@pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead.
|
||||||
|
|
||||||
|
* Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead.
|
||||||
|
|
||||||
|
* The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file.
|
||||||
|
|
||||||
|
* The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly.
|
||||||
|
|
||||||
|
* The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin instead.
|
||||||
|
|
||||||
|
|
||||||
|
For more information consult
|
||||||
|
`Deprecations and Removals <https://docs.pytest.org/en/stable/deprecations.html>`__ in the docs.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Deprecations
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#6981 <https://github.com/pytest-dev/pytest/issues/6981>`_: The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7097 <https://github.com/pytest-dev/pytest/issues/7097>`_: The ``pytest._fillfuncargs`` function is deprecated. This function was kept
|
||||||
|
for backward compatibility with an older plugin.
|
||||||
|
|
||||||
|
It's functionality is not meant to be used directly, but if you must replace
|
||||||
|
it, use `function._request._fillfixtures()` instead, though note this is not
|
||||||
|
a public API and may break in the future.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7210 <https://github.com/pytest-dev/pytest/issues/7210>`_: The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'``
|
||||||
|
instead.
|
||||||
|
|
||||||
|
The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue
|
||||||
|
if you use this and want a replacement.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7255 <https://github.com/pytest-dev/pytest/issues/7255>`_: The :func:`pytest_warning_captured <_pytest.hookspec.pytest_warning_captured>` hook is deprecated in favor
|
||||||
|
of :func:`pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>`, and will be removed in a future version.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7648 <https://github.com/pytest-dev/pytest/issues/7648>`_: The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated;
|
||||||
|
use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead.
|
||||||
|
This should work on all pytest versions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- `#7667 <https://github.com/pytest-dev/pytest/issues/7667>`_: New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improvements
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#6681 <https://github.com/pytest-dev/pytest/issues/6681>`_: Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``.
|
||||||
|
|
||||||
|
This also fixes a number of long standing issues: `#2891 <https://github.com/pytest-dev/pytest/issues/2891>`__, `#7620 <https://github.com/pytest-dev/pytest/issues/7620>`__, `#7426 <https://github.com/pytest-dev/pytest/issues/7426>`__.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7572 <https://github.com/pytest-dev/pytest/issues/7572>`_: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7685 <https://github.com/pytest-dev/pytest/issues/7685>`_: Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`.
|
||||||
|
These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes,
|
||||||
|
and should be preferred over them when possible.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Public classes which are not designed to be inherited from are now marked `@final <https://docs.python.org/3/library/typing.html#typing.final>`_.
|
||||||
|
Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime.
|
||||||
|
Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
- `#1953 <https://github.com/pytest-dev/pytest/issues/1953>`_: Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# conftest.py
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(params=[1, 2])
|
||||||
|
def foo(request):
|
||||||
|
return request.param
|
||||||
|
|
||||||
|
|
||||||
|
# test_foo.py
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def foo(foo):
|
||||||
|
return foo * 2
|
||||||
|
|
||||||
|
|
||||||
|
- `#4984 <https://github.com/pytest-dev/pytest/issues/4984>`_: Fixed an internal error crash with ``IndexError: list index out of range`` when
|
||||||
|
collecting a module which starts with a decorated function, the decorator
|
||||||
|
raises, and assertion rewriting is enabled.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7591 <https://github.com/pytest-dev/pytest/issues/7591>`_: pylint shouldn't complain anymore about unimplemented abstract methods when inheriting from :ref:`File <non-python tests>`.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7628 <https://github.com/pytest-dev/pytest/issues/7628>`_: Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``).
|
||||||
|
|
||||||
|
|
||||||
|
- `#7638 <https://github.com/pytest-dev/pytest/issues/7638>`_: Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7742 <https://github.com/pytest-dev/pytest/issues/7742>`_: Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- `#1477 <https://github.com/pytest-dev/pytest/issues/1477>`_: Removed faq.rst and its reference in contents.rst.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Trivial/Internal Changes
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- `#7536 <https://github.com/pytest-dev/pytest/issues/7536>`_: The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``.
|
||||||
|
The order of attributes in XML elements might differ. Some unneeded escaping is
|
||||||
|
no longer performed.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7587 <https://github.com/pytest-dev/pytest/issues/7587>`_: The dependency on the ``more-itertools`` package has been removed.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7631 <https://github.com/pytest-dev/pytest/issues/7631>`_: The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple,
|
||||||
|
but should behave like one in all respects. This was done for technical reasons.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7671 <https://github.com/pytest-dev/pytest/issues/7671>`_: When collecting tests, pytest finds test classes and functions by examining the
|
||||||
|
attributes of python objects (modules, classes and instances). To speed up this
|
||||||
|
process, pytest now ignores builtin attributes (like ``__class__``,
|
||||||
|
``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and
|
||||||
|
:confval:`python_functions` configuration options and without passing them to plugins
|
||||||
|
using the :func:`pytest_pycollect_makeitem <_pytest.hookspec.pytest_pycollect_makeitem>` hook.
|
||||||
|
|
||||||
|
|
||||||
pytest 6.0.2 (2020-09-04)
|
pytest 6.0.2 (2020-09-04)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ Install ``pytest``
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pytest --version
|
$ pytest --version
|
||||||
pytest 6.0.2
|
pytest 6.1.0
|
||||||
|
|
||||||
.. _`simpletest`:
|
.. _`simpletest`:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue