diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index da3f638d6a..d0f4168dc7 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -402,7 +402,7 @@ def system_test_dir(request, env, system_test_name): shutil.copytree(system_test_root / system_test_name, testdir) # 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)) @@ -495,6 +495,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(env, system_test_dir): """Function to call a shell script with arguments.""" @@ -594,7 +603,7 @@ def system_test( pytest.fail(f"get_core_dumps.sh exited with {exc.returncode}") os.environ.update(env) # Ensure pytests have the same env vars as shell tests. - isctest.log.info(f"test started: {request.node.name}") + isctest.log.info(f"test started: {_get_node_path(request.node)}") port = int(env["PORT"]) isctest.log.info("using port range: <%d, %d>", port, port + PORTS_PER_TEST - 1)