2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

fix: test: Make system tests compatible with pytest 8.0.0+

Make system tests symlinks and logged test names consistent across pytest versions.

Merge branch 'nicki/pytest-v8-compat' into 'main'

See merge request isc-projects/bind9!9071
This commit is contained in:
Nicki Křížek
2024-10-24 11:53:54 +00:00
2 changed files with 12 additions and 2 deletions

View File

@@ -16,6 +16,7 @@ named.run
/*.trs
/*.xml
/resolve
/legacy.run.sh
/run.log
/start.sh
/stop.sh

View File

@@ -355,7 +355,7 @@ def system_test_dir(request, system_test_name):
isctest.vars.dirs.set_system_test_name(testdir.name)
# Create a convenience symlink with a stable and predictable name
module_name = SYMLINK_REPLACEMENT_RE.sub(r"\1", request.node.name)
module_name = SYMLINK_REPLACEMENT_RE.sub(r"\1", str(_get_node_path(request.node)))
symlink_dst = system_test_root / module_name
unlink(symlink_dst)
symlink_dst.symlink_to(os.path.relpath(testdir, start=system_test_root))
@@ -446,6 +446,15 @@ def _run_script(
isctest.log.debug(" exited with %d", returncode)
def _get_node_path(node) -> Path:
if isinstance(node.parent, pytest.Session):
if _pytest_major_ver >= 8:
return Path()
return Path(node.name)
assert node.parent is not None
return _get_node_path(node.parent) / node.name
@pytest.fixture(scope="module")
def shell(system_test_dir):
"""Function to call a shell script with arguments."""
@@ -543,7 +552,7 @@ def system_test(
isctest.log.error("Found core dumps or sanitizer reports")
pytest.fail(f"get_core_dumps.sh exited with {exc.returncode}")
isctest.log.info(f"test started: {request.node.name}")
isctest.log.info(f"test started: {_get_node_path(request.node)}")
port = int(os.environ["PORT"])
isctest.log.info(
"using port range: <%d, %d>", port, port + isctest.vars.ports.PORTS_PER_TEST - 1