From fd13dfb0972d775c84378e6f102ffb636279ef93 Mon Sep 17 00:00:00 2001 From: Tom Krizek Date: Tue, 19 Sep 2023 17:20:32 +0200 Subject: [PATCH] Rename convenience symlink to pytest artifacts The previous symlink name convention was prone to name collisions If a system test contained both a shell test and a pytest module of the same name (e.g. dnstap test has both tests.sh and tests_dnstap.py), then these would have the same convenience symlink, which could cause test setup issues as well as confusion when examining test artifacts. Update the naming convention to include the full pytest module name. This results in a slightly more verbose names for shell tests (e.g. dnstap_sh_dnstap instead of the previous dnstap_dnstap), but it removes the chance of a collision. --- bin/tests/system/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index bd660d48e7..ac14893a2b 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -62,7 +62,7 @@ PRIORITY_TESTS_RE = re.compile("|".join(PRIORITY_TESTS)) CONFTEST_LOGGER = logging.getLogger("conftest") SYSTEM_TEST_DIR_GIT_PATH = "bin/tests/system" SYSTEM_TEST_NAME_RE = re.compile(f"{SYSTEM_TEST_DIR_GIT_PATH}" + r"/([^/]+)") -SYMLINK_REPLACEMENT_RE = re.compile(r"/tests(_sh(?=_))?(.*)\.py") +SYMLINK_REPLACEMENT_RE = re.compile(r"/tests(_.*)\.py") # ---------------------- Module initialization --------------------------- @@ -418,7 +418,7 @@ def system_test_dir( 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"\2", request.node.name) + module_name = SYMLINK_REPLACEMENT_RE.sub(r"\1", request.node.name) symlink_dst = system_test_root / module_name unlink(symlink_dst) symlink_dst.symlink_to(os.path.relpath(testdir, start=system_test_root))