Turn PytestDeprecationWarning into error (#5410)
Turn PytestDeprecationWarning into error
This commit is contained in:
commit
9f8b566ea9
|
@ -0,0 +1,23 @@
|
||||||
|
**PytestDeprecationWarning are now errors by default.**
|
||||||
|
|
||||||
|
Following our plan to remove deprecated features with as little disruption as
|
||||||
|
possible, all warnings of type ``PytestDeprecationWarning`` now generate errors
|
||||||
|
instead of warning messages.
|
||||||
|
|
||||||
|
**The affected features will be effectively removed in pytest 5.1**, so please consult the
|
||||||
|
`Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__
|
||||||
|
section in the docs for directions on how to update existing code.
|
||||||
|
|
||||||
|
In the pytest ``5.0.X`` series, it is possible to change the errors back into warnings as a stop
|
||||||
|
gap measure by adding this to your ``pytest.ini`` file:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[pytest]
|
||||||
|
filterwarnings =
|
||||||
|
ignore::pytest.PytestDeprecationWarning
|
||||||
|
|
||||||
|
But this will stop working when pytest ``5.1`` is released.
|
||||||
|
|
||||||
|
**If you have concerns** about the removal of a specific feature, please add a
|
||||||
|
comment to `#5402 <https://github.com/pytest-dev/pytest/issues/5402>`__.
|
|
@ -75,6 +75,7 @@ def catch_warnings_for_item(config, ihook, when, item):
|
||||||
warnings.filterwarnings("always", category=PendingDeprecationWarning)
|
warnings.filterwarnings("always", category=PendingDeprecationWarning)
|
||||||
|
|
||||||
warnings.filterwarnings("error", category=pytest.RemovedInPytest4Warning)
|
warnings.filterwarnings("error", category=pytest.RemovedInPytest4Warning)
|
||||||
|
warnings.filterwarnings("error", category=pytest.PytestDeprecationWarning)
|
||||||
|
|
||||||
# filters should have this precedence: mark, cmdline options, ini
|
# filters should have this precedence: mark, cmdline options, ini
|
||||||
# filters should be applied in the inverse order of precedence
|
# filters should be applied in the inverse order of precedence
|
||||||
|
|
|
@ -1138,7 +1138,6 @@ class TestFixtureUsages:
|
||||||
values = reprec.getfailedcollections()
|
values = reprec.getfailedcollections()
|
||||||
assert len(values) == 1
|
assert len(values) == 1
|
||||||
|
|
||||||
@pytest.mark.filterwarnings("ignore::pytest.PytestDeprecationWarning")
|
|
||||||
def test_request_can_be_overridden(self, testdir):
|
def test_request_can_be_overridden(self, testdir):
|
||||||
testdir.makepyfile(
|
testdir.makepyfile(
|
||||||
"""
|
"""
|
||||||
|
@ -1151,7 +1150,7 @@ class TestFixtureUsages:
|
||||||
assert request.a == 1
|
assert request.a == 1
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
reprec = testdir.inline_run()
|
reprec = testdir.inline_run("-Wignore::pytest.PytestDeprecationWarning")
|
||||||
reprec.assertoutcome(passed=1)
|
reprec.assertoutcome(passed=1)
|
||||||
|
|
||||||
def test_usefixtures_marker(self, testdir):
|
def test_usefixtures_marker(self, testdir):
|
||||||
|
|
|
@ -528,6 +528,37 @@ def test_removed_in_pytest4_warning_as_error(testdir, change_default):
|
||||||
result.stdout.fnmatch_lines(["* 1 passed in *"])
|
result.stdout.fnmatch_lines(["* 1 passed in *"])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("change_default", [None, "ini", "cmdline"])
|
||||||
|
def test_deprecation_warning_as_error(testdir, change_default):
|
||||||
|
testdir.makepyfile(
|
||||||
|
"""
|
||||||
|
import warnings, pytest
|
||||||
|
def test():
|
||||||
|
warnings.warn(pytest.PytestDeprecationWarning("some warning"))
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
if change_default == "ini":
|
||||||
|
testdir.makeini(
|
||||||
|
"""
|
||||||
|
[pytest]
|
||||||
|
filterwarnings =
|
||||||
|
ignore::pytest.PytestDeprecationWarning
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
args = (
|
||||||
|
("-Wignore::pytest.PytestDeprecationWarning",)
|
||||||
|
if change_default == "cmdline"
|
||||||
|
else ()
|
||||||
|
)
|
||||||
|
result = testdir.runpytest(*args)
|
||||||
|
if change_default is None:
|
||||||
|
result.stdout.fnmatch_lines(["* 1 failed in *"])
|
||||||
|
else:
|
||||||
|
assert change_default in ("ini", "cmdline")
|
||||||
|
result.stdout.fnmatch_lines(["* 1 passed in *"])
|
||||||
|
|
||||||
|
|
||||||
class TestAssertionWarnings:
|
class TestAssertionWarnings:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def assert_result_warns(result, msg):
|
def assert_result_warns(result, msg):
|
||||||
|
|
Loading…
Reference in New Issue