From: Nicki Křížek Date: Tue, 16 Dec 2025 16:48:04 +0000 (+0100) Subject: Add support for pytest>=9.0.0 X-Git-Tag: v9.18.45~8^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1ebbcb7e08116495750260bbf69b85ae8d5eb2a;p=thirdparty%2Fbind9.git 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) --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ca8c457ef91..1144419de47 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -506,10 +506,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 @@ -981,6 +977,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 c23b459f2f1..da199018424 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -137,7 +137,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 @@ -146,9 +146,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