@@ -92,33 +92,45 @@ def pytest_addoption(parser):
92
92
)
93
93
94
94
95
- def pytest_runtest_setup (item ):
96
- if "slow" in item .keywords and item .config .getoption ("--skip-slow" ):
97
- pytest .skip ("skipping due to --skip-slow" )
98
-
99
- if "slow" not in item .keywords and item .config .getoption ("--only-slow" ):
100
- pytest .skip ("skipping due to --only-slow" )
101
-
102
- if "network" in item .keywords and item .config .getoption ("--skip-network" ):
103
- pytest .skip ("skipping due to --skip-network" )
104
-
105
- if "db" in item .keywords and item .config .getoption ("--skip-db" ):
106
- pytest .skip ("skipping due to --skip-db" )
107
-
108
- if "high_memory" in item .keywords and not item .config .getoption (
109
- "--run-high-memory"
110
- ):
111
- pytest .skip ("skipping high memory test since --run-high-memory was not set" )
112
-
95
+ def pytest_collection_modifyitems (items , config ):
96
+ skip_slow = config .getoption ("--skip-slow" )
97
+ only_slow = config .getoption ("--only-slow" )
98
+ skip_network = config .getoption ("--skip-network" )
99
+ skip_db = config .getoption ("--skip-db" )
100
+ run_high_memory = config .getoption ("--run-high-memory" )
101
+
102
+ marks = [
103
+ (pytest .mark .slow , "slow" , skip_slow , "--skip-slow" ),
104
+ (pytest .mark .network , "network" , skip_network , "--network" ),
105
+ (pytest .mark .db , "db" , skip_db , "--skip-db" ),
106
+ ]
113
107
114
- def pytest_collection_modifyitems (items ):
115
108
for item in items :
116
109
# mark all tests in the pandas/tests/frame directory with "arraymanager"
117
110
if "/frame/" in item .nodeid :
118
111
item .add_marker (pytest .mark .arraymanager )
119
-
120
112
item .add_marker (suppress_npdev_promotion_warning )
121
113
114
+ for (mark , kwd , skip_if_found , arg_name ) in marks :
115
+ if kwd in item .keywords :
116
+ # If we're skipping, no need to actually add the marker or look for
117
+ # other markers
118
+ if skip_if_found :
119
+ item .add_marker (pytest .mark .skip (f"skipping due to { arg_name } " ))
120
+ break
121
+
122
+ item .add_marker (mark )
123
+
124
+ if only_slow and "slow" not in item .keywords :
125
+ item .add_marker (pytest .mark .skip ("skipping due to --only-slow" ))
126
+
127
+ if "high_memory" in item .keywords and not run_high_memory :
128
+ item .add_marker (
129
+ pytest .mark .skip (
130
+ "skipping high memory test since --run-high-memory was not set"
131
+ )
132
+ )
133
+
122
134
123
135
# Hypothesis
124
136
hypothesis .settings .register_profile (
0 commit comments