From 7c2a8e63f65e3ebde4b954004f39f9ccacbc7929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Tue, 16 Dec 2025 17:48:04 +0100 Subject: [PATCH] Add support for pytest>=9.0.0 Use collection_path rather than the deprecated path argument for pytest_ignore_collect() hook. The collection_path argument was added in pytest 7.0.0, which is the minimum supported pytest version from now on. (cherry picked from commit 093bef9211b252653425f4477aa513d85e260cef) --- .gitlab-ci.yml | 5 +---- bin/tests/system/conftest.py | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 26c199f440..5d176744d2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -549,10 +549,6 @@ stages: - ( if [ "${CI_DISPOSABLE_ENVIRONMENT}" = "true" ]; then sleep 3000; "$PYTHON" "${CI_PROJECT_DIR}/util/get-running-system-tests.py"; fi ) & - cd bin/tests/system - RET=0 - # With pytest 9.0, there's the following error in pytest_ignore_collect(): - # The (path: py.path.local) argument is deprecated, please use (collection_path: pathlib.Path). - # This should be fixed before pytest 9.1, when it becomes ineffective. - - if pytest --version | grep -F "pytest 9.0" >/dev/null; then echo "filterwarnings = ignore::pytest.PytestRemovedIn9Warning" >> pytest.ini; fi - > ("$PYTEST" --junit-xml="$CI_PROJECT_DIR"/junit_pytest.xml -n "$TEST_PARALLEL_JOBS" | tee pytest.out.txt) || RET=1 - *git_clone_bind9-qa @@ -1011,6 +1007,7 @@ cross-version-config-tests: untracked: true expire_in: "1 day" when: always + allow_failure: true # GL!11415 # Jobs for regular GCC builds on Alpine Linux 3.23 (amd64) diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index 5692380c8e..35dc213f02 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -102,7 +102,7 @@ def pytest_configure(config): config.option.dist = "loadscope" -def pytest_ignore_collect(path): +def pytest_ignore_collect(collection_path): # System tests are executed in temporary directories inside # bin/tests/system. These temporary directories contain all files # needed for the system tests - including tests_*.py files. Make sure to @@ -111,9 +111,9 @@ def pytest_ignore_collect(path): # convenience symlinks to those test directories. In both of those # cases, the system test name (directory) contains an underscore, which # is otherwise and invalid character for a system test name. - match = SYSTEM_TEST_NAME_RE.search(str(path)) + match = SYSTEM_TEST_NAME_RE.search(str(collection_path)) if match is None: - isctest.log.warning("unexpected test path: %s (ignored)", path) + isctest.log.warning("unexpected test path: %s (ignored)", collection_path) return True system_test_name = match.groups()[0] return "_" in system_test_name