Move pytest requirements check to pytest_configure hook

Logging from a pytest hook looks better.

Reorder the check for presence of `featuretest` before `init_vars` to
produce more sensible errors.
This commit is contained in:
Štěpán Balážik 2026-02-13 11:53:16 +01:00
parent 982c7441d0
commit b31f058ad0

View file

@ -34,13 +34,6 @@ import isctest
# Silence warnings caused by passing a pytest fixture to another fixture.
# pylint: disable=redefined-outer-name
if sys.version_info[1] < 10:
raise RuntimeError("Python 3.10 or newer is required to run system tests.")
isctest.log.init_conftest_logger()
isctest.log.avoid_duplicated_logs()
isctest.vars.init_vars()
# ----------------------- Globals definition -----------------------------
FILE_DIR = os.path.abspath(Path(__file__).parent)
@ -56,18 +49,26 @@ PRIORITY_TESTS_RE = Re("|".join(PRIORITY_TESTS))
SYSTEM_TEST_NAME_RE = Re(f"{SYSTEM_TEST_DIR_GIT_PATH}" + r"/([^/]+)")
SYMLINK_REPLACEMENT_RE = Re(r"/tests_(.*)\.py")
# ----------------------- Global requirements ----------------------------
isctest.check.is_executable(isctest.vars.ALL["PYTHON"], "Python interpreter required")
isctest.check.is_executable(isctest.vars.ALL["PERL"], "Perl interpreter required")
isctest.check.is_executable(
isctest.vars.ALL["FEATURETEST"],
"Run this first: ninja -C build system-test-dependencies",
)
# --------------------------- pytest hooks -------------------------------
def pytest_configure(config): # pylint: disable=unused-argument
if sys.version_info < (3, 10):
raise RuntimeError("Python 3.10 or newer is required to run system tests.")
isctest.log.init_conftest_logger()
isctest.log.avoid_duplicated_logs()
isctest.check.is_executable(
isctest.vars.ALL["FEATURETEST"],
"Run this first: ninja -C build system-test-dependencies",
)
isctest.vars.init_vars()
isctest.check.is_executable(
isctest.vars.ALL["PYTHON"], "Python interpreter required"
)
isctest.check.is_executable(isctest.vars.ALL["PERL"], "Perl interpreter required")
def pytest_addoption(parser):
parser.addoption(
"--noclean",