mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-22 18:17:05 -04:00
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.
This commit is contained in:
parent
e276c3d5bd
commit
ac8e2905b8
2 changed files with 8 additions and 16 deletions
|
|
@ -46,16 +46,11 @@ nameserver and is listed in the hints file of the others.
|
|||
|
||||
To run system tests, make sure you have the following dependencies installed:
|
||||
|
||||
- python3
|
||||
- pytest
|
||||
- python3 (3.10 and newer)
|
||||
- perl
|
||||
- dnspython
|
||||
- pytest-xdist (for parallel execution)
|
||||
- python-jinja2
|
||||
|
||||
Individual system tests might also require additional dependencies. If those
|
||||
are missing, the affected tests will be skipped and should produce a message
|
||||
specifying what additional prerequisites they expect.
|
||||
List of required python packages and their versions can be found in
|
||||
requirements.txt (can be installed with `pip3 install -r requirements.txt`).
|
||||
|
||||
### Network Setup
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import shutil
|
|||
import subprocess
|
||||
import tempfile
|
||||
import time
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
|
|
@ -29,6 +30,8 @@ from isctest.vars.build import SYSTEM_TEST_DIR_GIT_PATH
|
|||
# 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()
|
||||
|
|
@ -359,12 +362,6 @@ def system_test_dir(request, 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):
|
||||
|
|
@ -409,7 +406,7 @@ def system_test_dir(request, 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)
|
||||
|
|
@ -461,7 +458,7 @@ def system_test_dir(request, 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")
|
||||
|
|
|
|||
Loading…
Reference in a new issue