From 9c998f9f7e9bbe46ba11f946123a3792a5fd33b3 Mon Sep 17 00:00:00 2001 From: David Corvoysier Date: Tue, 18 Feb 2025 12:30:34 +0000 Subject: [PATCH] test: add --neuron option --- integration-tests/conftest.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/integration-tests/conftest.py b/integration-tests/conftest.py index b0ce2b76..5e5dfc2a 100644 --- a/integration-tests/conftest.py +++ b/integration-tests/conftest.py @@ -58,20 +58,37 @@ def pytest_addoption(parser): parser.addoption( "--release", action="store_true", default=False, help="run release tests" ) + parser.addoption( + "--neuron", action="store_true", default=False, help="run neuron tests" + ) def pytest_configure(config): config.addinivalue_line("markers", "release: mark test as a release-only test") + config.addinivalue_line("markers", "neuron: mark test as a neuron test") def pytest_collection_modifyitems(config, items): - if config.getoption("--release"): - # --release given in cli: do not skip release tests - return - skip_release = pytest.mark.skip(reason="need --release option to run") + selectors = [] + if not config.getoption("--release"): + # --release not given in cli: skip release tests + def skip_release(item): + if "release" in item.keywords: + item.add_marker(pytest.mark.skip(reason="need --release option to run")) + selectors.append(skip_release) + if config.getoption("--neuron"): + def skip_not_neuron(item): + if "neuron" not in item.keywords: + item.add_marker(pytest.mark.skip(reason="incompatible with --neuron option")) + selectors.append(skip_not_neuron) + else: + def skip_neuron(item): + if "neuron" in item.keywords: + item.add_marker(pytest.mark.skip(reason="requires --neuron to run")) + selectors.append(skip_neuron) for item in items: - if "release" in item.keywords: - item.add_marker(skip_release) + for selector in selectors: + selector(item) @pytest.fixture(autouse=True)