From 2d71935a918e4e5783f68aab7c6ebc1eeed52f83 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 14 Feb 2024 07:45:47 +0100 Subject: [PATCH] inputs: add new "inputs_module" fixture --- inputs/test/conftest.py | 21 +++++++++++++++++++++ tox.ini | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 inputs/test/conftest.py diff --git a/inputs/test/conftest.py b/inputs/test/conftest.py new file mode 100644 index 00000000..0c1c3653 --- /dev/null +++ b/inputs/test/conftest.py @@ -0,0 +1,21 @@ +import os +import pathlib +from types import ModuleType + +import pytest + +from osbuild.testutil.imports import import_module_from_path + + +@pytest.fixture +def inputs_module(request: pytest.FixtureRequest) -> ModuleType: + """inputs_module is a fixture that imports a stage module by its name + defined in INPUTS_NAME in the test module. + """ + if not hasattr(request.module, "INPUTS_NAME"): + raise ValueError("inputs_module fixture must be used in a test module that defines INPUTS_NAME") + + inputs_name = request.module.INPUTS_NAME + caller_dir = pathlib.Path(request.node.fspath).parent + module_path = caller_dir.parent / inputs_name + return import_module_from_path("inputs", os.fspath(module_path)) diff --git a/tox.ini b/tox.ini index a00e8aa0..09035c73 100644 --- a/tox.ini +++ b/tox.ini @@ -25,7 +25,7 @@ deps = tox-backticks setenv = - LINTABLES = osbuild/ assemblers/* devices/* inputs/* mounts/* runners/* sources/*.* stages/*.* stages/test/*.py sources/test/*.py test/ `find ./tools ! -name "*.sh" -type f` + LINTABLES = osbuild/ assemblers/* devices/* inputs/*.* mounts/* runners/* sources/*.* stages/*.* inputs/test/*.py stages/test/*.py sources/test/*.py test/ `find ./tools ! -name "*.sh" -type f` TYPEABLES = osbuild TYPEABLES_STRICT = ./osbuild/main_cli.py