]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add support for pytest>=9.0.0
authorNicki Křížek <nicki@isc.org>
Tue, 16 Dec 2025 16:48:04 +0000 (17:48 +0100)
committerNicki Křížek <nicki@isc.org>
Wed, 21 Jan 2026 15:07:31 +0000 (16:07 +0100)
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.

.gitlab-ci.yml
bin/tests/system/conftest.py

index 48bb705d271ae105b959def66b840469d61b79cd..594da0ef4f5557d1b1baac10a00574570a3ab3b9 100644 (file)
@@ -525,10 +525,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
@@ -970,6 +966,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)
 
index db91828f7581ee1c8249d1bc91cf408ec7479e20..4d85234502f25d506918b23e064bce08c9c26fd1 100644 (file)
@@ -106,7 +106,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
@@ -115,9 +115,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