124 lines
4.0 KiB
Python
124 lines
4.0 KiB
Python
"""Deprecation messages and bits of code used elsewhere in the codebase that
|
|
is planned to be removed in the next pytest release.
|
|
|
|
Keeping it in a central location makes it easy to track what is deprecated and should
|
|
be removed when the time comes.
|
|
|
|
All constants defined in this module should be either instances of
|
|
:class:`PytestWarning`, or :class:`UnformattedWarning`
|
|
in case of warnings which need to format their messages.
|
|
"""
|
|
from warnings import warn
|
|
|
|
from _pytest.warning_types import PytestDeprecationWarning
|
|
from _pytest.warning_types import UnformattedWarning
|
|
|
|
# set of plugins which have been integrated into the core; we use this list to ignore
|
|
# them during registration to avoid conflicts
|
|
DEPRECATED_EXTERNAL_PLUGINS = {
|
|
"pytest_catchlog",
|
|
"pytest_capturelog",
|
|
"pytest_faulthandler",
|
|
}
|
|
|
|
|
|
FILLFUNCARGS = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"{name} is deprecated, use "
|
|
"function._request._fillfixtures() instead if you cannot avoid reaching into internals.",
|
|
)
|
|
|
|
PYTEST_COLLECT_MODULE = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"pytest.collect.{name} was moved to pytest.{name}\n"
|
|
"Please update to the new name.",
|
|
)
|
|
|
|
YIELD_FIXTURE = PytestDeprecationWarning(
|
|
"@pytest.yield_fixture is deprecated.\n"
|
|
"Use @pytest.fixture instead; they are the same."
|
|
)
|
|
|
|
MINUS_K_DASH = PytestDeprecationWarning(
|
|
"The `-k '-expr'` syntax to -k is deprecated.\nUse `-k 'not expr'` instead."
|
|
)
|
|
|
|
MINUS_K_COLON = PytestDeprecationWarning(
|
|
"The `-k 'expr:'` syntax to -k is deprecated.\n"
|
|
"Please open an issue if you use this and want a replacement."
|
|
)
|
|
|
|
WARNING_CAPTURED_HOOK = PytestDeprecationWarning(
|
|
"The pytest_warning_captured is deprecated and will be removed in a future release.\n"
|
|
"Please use pytest_warning_recorded instead."
|
|
)
|
|
|
|
FSCOLLECTOR_GETHOOKPROXY_ISINITPATH = PytestDeprecationWarning(
|
|
"The gethookproxy() and isinitpath() methods of FSCollector and Package are deprecated; "
|
|
"use self.session.gethookproxy() and self.session.isinitpath() instead. "
|
|
)
|
|
|
|
STRICT_OPTION = PytestDeprecationWarning(
|
|
"The --strict option is deprecated, use --strict-markers instead."
|
|
)
|
|
|
|
PRIVATE = PytestDeprecationWarning("A private pytest class or function was used.")
|
|
|
|
UNITTEST_SKIP_DURING_COLLECTION = PytestDeprecationWarning(
|
|
"Raising unittest.SkipTest to skip tests during collection is deprecated. "
|
|
"Use pytest.skip() instead."
|
|
)
|
|
|
|
ARGUMENT_PERCENT_DEFAULT = PytestDeprecationWarning(
|
|
'pytest now uses argparse. "%default" should be changed to "%(default)s"',
|
|
)
|
|
|
|
ARGUMENT_TYPE_STR_CHOICE = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"`type` argument to addoption() is the string {typ!r}."
|
|
" For choices this is optional and can be omitted, "
|
|
" but when supplied should be a type (for example `str` or `int`)."
|
|
" (options: {names})",
|
|
)
|
|
|
|
ARGUMENT_TYPE_STR = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"`type` argument to addoption() is the string {typ!r}, "
|
|
" but when supplied should be a type (for example `str` or `int`)."
|
|
" (options: {names})",
|
|
)
|
|
|
|
|
|
NODE_FSPATH = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"{type}.fspath is deprecated and will be replaced by {type}.path.\n"
|
|
"see https://docs.pytest.org/en/latest/deprecations.html#node-fspath-in-favor-of-pathlib-and-node-path",
|
|
)
|
|
|
|
HOOK_LEGACY_PATH_ARG = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"{pylib_path_arg} : py.path.local is deprecated, please use {pathlib_path_arg} : pathlib.Path",
|
|
)
|
|
# You want to make some `__init__` or function "private".
|
|
#
|
|
# def my_private_function(some, args):
|
|
# ...
|
|
#
|
|
# Do this:
|
|
#
|
|
# def my_private_function(some, args, *, _ispytest: bool = False):
|
|
# check_ispytest(_ispytest)
|
|
# ...
|
|
#
|
|
# Change all internal/allowed calls to
|
|
#
|
|
# my_private_function(some, args, _ispytest=True)
|
|
#
|
|
# All other calls will get the default _ispytest=False and trigger
|
|
# the warning (possibly error in the future).
|
|
|
|
|
|
def check_ispytest(ispytest: bool) -> None:
|
|
if not ispytest:
|
|
warn(PRIVATE, stacklevel=3)
|