summaryrefslogtreecommitdiffhomepage
path: root/test/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/conftest.py')
-rw-r--r--test/conftest.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/conftest.py b/test/conftest.py
index 07d5f059..5c8da65f 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -184,6 +184,40 @@ def pytest_runtest_makereport(item, call):
setattr(item, "rep_" + rep.when, rep)
+@pytest.fixture(scope='class', autouse=True)
+def check_prerequisites(request):
+ cls = request.cls
+ missed = []
+
+ # check modules
+
+ if 'modules' in cls.prerequisites:
+ available_modules = list(option.available['modules'].keys())
+
+ for module in cls.prerequisites['modules']:
+ if module in available_modules:
+ continue
+
+ missed.append(module)
+
+ if missed:
+ pytest.skip('Unit has no ' + ', '.join(missed) + ' module(s)')
+
+ # check features
+
+ if 'features' in cls.prerequisites:
+ available_features = list(option.available['features'].keys())
+
+ for feature in cls.prerequisites['features']:
+ if feature in available_features:
+ continue
+
+ missed.append(feature)
+
+ if missed:
+ pytest.skip(', '.join(missed) + ' feature(s) not supported')
+
+
@pytest.fixture(autouse=True)
def run(request):
unit = unit_run()