[PATCH osinfo-db 7/7] tests: Add custom pytest-3 --network-tests option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Fedora Users]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux