Bump the minimum required python version to 3.10

Drop support of EoL python versions for running system tests. The
maintenance cost of supporting end of life ecosystem, especially Python
3.6 on EL8 and the related outdated packages (pytest, dnspython, ...),
has become unreasonable.

(cherry picked from commit ac8e2905b8)
This commit is contained in:
Nicki Křížek 2025-12-30 13:45:50 +01:00
parent 08ee4c75a5
commit 2b56b9beea
2 changed files with 6 additions and 9 deletions

View file

@ -19,6 +19,7 @@ import subprocess
import tempfile
import time
from typing import Dict, List, Optional
import sys
import pytest
@ -30,6 +31,8 @@ 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.")
# ----------------------- Globals definition -----------------------------
@ -409,12 +412,6 @@ def system_test_dir(request, env, system_test_name, expected_artifacts):
assert all(res.outcome == "passed" for res in test_results.values())
return "passed"
def unlink(path):
try:
path.unlink() # missing_ok=True isn't available on Python 3.6
except FileNotFoundError:
pass
def check_artifacts(source_dir, run_dir):
def check_artifacts_recursive(dcmp):
def artifact_expected(path, expected):
@ -459,7 +456,7 @@ def system_test_dir(request, env, system_test_name, expected_artifacts):
# Create a convenience symlink with a stable and predictable name
module_name = SYMLINK_REPLACEMENT_RE.sub(r"\1", str(request.node.path))
symlink_dst = system_test_root / module_name
unlink(symlink_dst)
symlink_dst.unlink(missing_ok=True)
symlink_dst.symlink_to(os.path.relpath(testdir, start=system_test_root))
isctest.log.init_module_logger(system_test_name, testdir)
@ -508,7 +505,7 @@ def system_test_dir(request, env, system_test_name, expected_artifacts):
isctest.log.deinit_module_logger()
if not keep:
shutil.rmtree(testdir)
unlink(symlink_dst)
symlink_dst.unlink(missing_ok=True)
@pytest.fixture(scope="module")

View file

@ -240,7 +240,7 @@ AM_CONDITIONAL([HAVE_PERL], [test -n "$PERL"])
#
# Python is optional, it is used only by some of the system test scripts.
#
AM_PATH_PYTHON([3.6], [], [:])
AM_PATH_PYTHON([3.10], [], [:])
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != ":"])
AC_PATH_PROGS([PYTEST], [pytest-3 py.test-3 pytest py.test pytest-pypy], [])