This wires up a --network-tests option to save us from needing the OSINFO_DB_NETWORK_TESTS environment variable, though that method still works. It works a bit differently in that unless specified it entirely takes the tests out of the pool and doesn't list any SKIP options. IMO this is nicer because it makes the default test suite output less noisy. The network tests need to only be run periodically Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> --- tests/conftest.py | 17 +++++++++++++++++ tests/test_urls.py | 9 --------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 8bd7236..5f9cd5b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,6 +13,23 @@ def _setup_env(): _setup_env() + +def pytest_addoption(parser): + parser.addoption("--network-tests", action="store_true", default=False, + help=("Run osinfo-db network tests. Same tests as triggered " + "by setting env variable OSINFO_DB_NETWORK_TESTS")) + + +def pytest_ignore_collect(path, config): + """ + Entirely skip loading test_urls.py if the option wasn't specified + """ + run_network = bool(config.getoption("--network-tests") or + os.environ.get("OSINFO_DB_NETWORK_TESTS")) + if os.path.basename(str(path)) == "test_urls.py" and not run_network: + return True + + # This will trigger some DATA_DIR validation from . import util dummy = util diff --git a/tests/test_urls.py b/tests/test_urls.py index 552e6eb..5900f3d 100644 --- a/tests/test_urls.py +++ b/tests/test_urls.py @@ -1,15 +1,10 @@ # This work is licensed under the GNU GPLv2 or later. # See the COPYING file in the top-level directory. -import os -import pytest - from . import util @util.os_parametrize('_os', filter_images=True) -@pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None, - reason='Network related tests are not enabled') def test_images_url(_os): broken = [] for image in _os.images: @@ -20,8 +15,6 @@ def test_images_url(_os): @util.os_parametrize('_os', filter_trees=True) -@pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None, - reason='Network related tests are not enabled') def test_medias_url(_os): broken = [] for media in _os.medias: @@ -32,8 +25,6 @@ def test_medias_url(_os): @util.os_parametrize('_os', filter_media=True) -@pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None, - reason='Network related tests are not enabled') def test_trees_url(_os): broken = [] for tree in _os.trees: -- 2.21.0 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo