aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/pytest/py3/_pytest/deprecated.py
blob: 273328b435bc2dd46ebb6998390a3882af7f06b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
"""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.") 
 
 
# 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)