Skip to content

Commit 323595a

Browse files
authored
CI: network tests running even with "not network" (pandas-dev#43545)
1 parent 7a3a01a commit 323595a

File tree

1 file changed

+32
-20
lines changed

1 file changed

+32
-20
lines changed

pandas/conftest.py

+32-20
Original file line numberDiff line numberDiff line change
@@ -92,33 +92,45 @@ def pytest_addoption(parser):
9292
)
9393

9494

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+
]
113107

114-
def pytest_collection_modifyitems(items):
115108
for item in items:
116109
# mark all tests in the pandas/tests/frame directory with "arraymanager"
117110
if "/frame/" in item.nodeid:
118111
item.add_marker(pytest.mark.arraymanager)
119-
120112
item.add_marker(suppress_npdev_promotion_warning)
121113

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+
122134

123135
# Hypothesis
124136
hypothesis.settings.register_profile(

0 commit comments

Comments
 (0)