[Libosinfo] [PATCH osinfo-db 4/7] tests: add os_parameterize

Cole Robinson crobinso at redhat.com
Wed Mar 20 21:53:23 UTC 2019


This is a helper for parameterizing tests based on a list of OS
objects.

Signed-off-by: Cole Robinson <crobinso at redhat.com>
---
 tests/test_devices.py   |  4 +---
 tests/test_resources.py | 11 +++++------
 tests/test_urls.py      |  6 +++---
 tests/util.py           | 10 ++++++++++
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/tests/test_devices.py b/tests/test_devices.py
index c14ae48..8696ccc 100644
--- a/tests/test_devices.py
+++ b/tests/test_devices.py
@@ -1,12 +1,10 @@
 # This work is licensed under the GNU GPLv2 or later.
 # See the COPYING file in the top-level directory.
 
-import pytest
-
 from . import util
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_devices_duplication(_os):
     broken = []
     related = util.DataFiles.get_os_related(_os)
diff --git a/tests/test_resources.py b/tests/test_resources.py
index d8cc588..6e00dba 100644
--- a/tests/test_resources.py
+++ b/tests/test_resources.py
@@ -4,12 +4,11 @@
 from collections import defaultdict
 
 import logging
-import pytest
 
 from . import util
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_resources_uniqueness_by_arch(_os):
     result = defaultdict(list)
     for resources in _os.resources_list:
@@ -19,7 +18,7 @@ def test_resources_uniqueness_by_arch(_os):
         assert len(value) == 1
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_minimum_recommended_resources(_os):
     _resources_helper(_os,
                       _os.get_minimum_resources,
@@ -28,7 +27,7 @@ def test_minimum_recommended_resources(_os):
                       'recommended')
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_recommended_maximum_resources(_os):
     _resources_helper(_os,
                       _os.get_recommended_resources,
@@ -37,7 +36,7 @@ def test_recommended_maximum_resources(_os):
                       'maximum')
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_recommended_network_install_resources(_os):
     _resources_helper(_os,
                       _os.get_recommended_resources,
@@ -46,7 +45,7 @@ def test_recommended_network_install_resources(_os):
                       'network-install')
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 def test_network_install_maximum_resources(_os):
     _resources_helper(_os,
                       _os.get_network_install_resources,
diff --git a/tests/test_urls.py b/tests/test_urls.py
index 4cc38e7..b6dcd62 100644
--- a/tests/test_urls.py
+++ b/tests/test_urls.py
@@ -7,7 +7,7 @@ import pytest
 from . import util
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 @pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None,
                     reason='Network related tests are not enabled')
 def test_images_url(_os):
@@ -19,7 +19,7 @@ def test_images_url(_os):
     assert broken == []
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 @pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None,
                     reason='Network related tests are not enabled')
 def test_medias_url(_os):
@@ -31,7 +31,7 @@ def test_medias_url(_os):
     assert broken == []
 
 
- at pytest.mark.parametrize('_os', util.DataFiles.oses(), ids=lambda o: o.shortid)
+ at util.os_parametrize('_os')
 @pytest.mark.skipif(os.environ.get('OSINFO_DB_NETWORK_TESTS') is None,
                     reason='Network related tests are not enabled')
 def test_trees_url(_os):
diff --git a/tests/util.py b/tests/util.py
index b957b08..76e08da 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -6,6 +6,8 @@ from collections import defaultdict
 import os
 import xml.etree.ElementTree as ET
 
+import pytest
+
 from . import osinfo
 
 
@@ -82,3 +84,11 @@ class _DataFiles():
 
 
 DataFiles = _DataFiles()
+
+
+def os_parametrize(argname):
+    """
+    Helper for parametrizing a test with an OS list.
+    """
+    oses = DataFiles.oses()
+    return pytest.mark.parametrize(argname, oses, ids=lambda o: o.shortid)
-- 
2.21.0




More information about the Libosinfo mailing list