merge upstream master and improve docs for nose support deprecations
This commit is contained in:
parent
c3c48ff19c
commit
564b5b0e02
|
@ -23,7 +23,9 @@ Support for tests written for nose
|
|||
|
||||
.. deprecated:: 7.2.0
|
||||
|
||||
Support for running tests written for nose is now deprecated.
|
||||
Support for running tests written for `nose <https://nose.readthedocs.io/en/latest/>`__ is now deprecated.
|
||||
`nose` has been in maintenance mode-only for years, and maintaining the plugin is not trivial as it spills
|
||||
over the code base (see :issue:`9886` for more details).
|
||||
|
||||
|
||||
.. _instance-collector-deprecation:
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
How to run tests written for nose
|
||||
=======================================
|
||||
|
||||
``pytest`` has basic support for running tests written for nose_. This functionality has been
|
||||
deprecated and is likely to be removed in ``pytest 8.x``.
|
||||
``pytest`` has basic support for running tests written for nose_.
|
||||
|
||||
.. warning::
|
||||
This functionality has been deprecated and is likely to be removed in ``pytest 8.x``.
|
||||
|
||||
.. _nosestyle:
|
||||
|
||||
|
|
|
@ -22,8 +22,10 @@ DEPRECATED_EXTERNAL_PLUGINS = {
|
|||
"pytest_faulthandler",
|
||||
}
|
||||
|
||||
NOSE_SUPPORT = PytestRemovedIn8Warning(
|
||||
"Support for nose tests is deprecated and will be removed in a future release."
|
||||
NOSE_SUPPORT = UnformattedWarning(
|
||||
PytestRemovedIn8Warning,
|
||||
"Support for nose tests is deprecated and will be removed in a future release.\n"
|
||||
"{nodeid} is using nose method: `{nose_method}`",
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -21,8 +21,8 @@ def pytest_runtest_setup(item: Item) -> None:
|
|||
# see https://github.com/python/mypy/issues/2608
|
||||
func = item
|
||||
|
||||
call_optional(func.obj, "setup")
|
||||
func.addfinalizer(lambda: call_optional(func.obj, "teardown"))
|
||||
call_optional(func.obj, "setup", func.nodeid)
|
||||
func.addfinalizer(lambda: call_optional(func.obj, "teardown", func.nodeid))
|
||||
|
||||
# NOTE: Module- and class-level fixtures are handled in python.py
|
||||
# with `pluginmanager.has_plugin("nose")` checks.
|
||||
|
@ -30,7 +30,7 @@ def pytest_runtest_setup(item: Item) -> None:
|
|||
# it's not straightforward.
|
||||
|
||||
|
||||
def call_optional(obj: object, name: str) -> bool:
|
||||
def call_optional(obj: object, name: str, nodeid: str) -> bool:
|
||||
method = getattr(obj, name, None)
|
||||
if method is None:
|
||||
return False
|
||||
|
@ -41,6 +41,6 @@ def call_optional(obj: object, name: str) -> bool:
|
|||
return False
|
||||
# If there are any problems allow the exception to raise rather than
|
||||
# silently ignoring it.
|
||||
warnings.warn(NOSE_SUPPORT, stacklevel=2)
|
||||
warnings.warn(NOSE_SUPPORT.format(nodeid=nodeid, nose_method=name), stacklevel=2)
|
||||
method()
|
||||
return True
|
||||
|
|
|
@ -515,6 +515,9 @@ def test_nose_setup_and_teardown_is_deprecated(pytester: Pytester) -> None:
|
|||
"""
|
||||
)
|
||||
output = pytester.runpytest()
|
||||
message = "*PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.*"
|
||||
output.stdout.fnmatch_lines([message])
|
||||
message = [
|
||||
"*PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.",
|
||||
"*test_nose_setup_and_teardown_is_deprecated.py::test_omits_warnings is using nose method: *",
|
||||
]
|
||||
output.stdout.fnmatch_lines(message)
|
||||
output.assert_outcomes(passed=1, warnings=2)
|
||||
|
|
Loading…
Reference in New Issue