==> Building on chiyu ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-pdm ./ .SRCINFO 1,711 100% 0.00kB/s 0:00:00 1,711 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=3/5) .nvchecker.toml 42 100% 41.02kB/s 0:00:00 42 100% 41.02kB/s 0:00:00 (xfr#2, to-chk=2/5) PKGBUILD 2,811 100% 2.68MB/s 0:00:00 2,811 100% 2.68MB/s 0:00:00 (xfr#3, to-chk=1/5) python-pdm-2.13.2-1.log 242 100% 236.33kB/s 0:00:00 242 100% 236.33kB/s 0:00:00 (xfr#4, to-chk=0/5) sent 2,486 bytes received 137 bytes 5,246.00 bytes/sec total size is 4,756 speedup is 1.81 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l root0 on remote host... ==> Locking clean chroot...done [?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [root0]...done ==> Making package: python-pdm 2.13.2-1 (Fri Apr 12 00:36:52 2024) ==> Retrieving sources...  -> Downloading pdm-2.13.2.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 100 15772 0 15772 0 0 8027 0 --:--:-- 0:00:01 --:--:-- 64639 100 605k 0 605k 0 0 205k 0 --:--:-- 0:00:02 --:--:-- 492k 100 2792k 0 2792k 0 0 765k 0 --:--:-- 0:00:03 --:--:-- 1447k ==> Validating source files with sha512sums... pdm-2.13.2.tar.gz ... Passed ==> Validating source files with b2sums... pdm-2.13.2.tar.gz ... Passed ==> Making package: python-pdm 2.13.2-1 (Fri Apr 12 00:37:18 2024) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (40) New Version Net Change Download Size core/libnsl 2.0.1-1 0.07 MiB extra/python-anyio 4.3.0-1 1.30 MiB extra/python-click 8.1.7-1 1.24 MiB extra/python-colorama 0.4.6-2 0.27 MiB extra/python-distlib 0.3.8-1 1.39 MiB extra/python-h11 0.14.0-2 0.65 MiB extra/python-idna 3.6-1 0.71 MiB extra/python-markdown-it-py 3.0.0-1 0.71 MiB extra/python-mdurl 0.1.2-4 0.06 MiB extra/python-pygments 2.17.2-1 13.94 MiB extra/python-pyproject-metadata 0.7.1-2 0.08 MiB extra/python-sniffio 1.3.1-1 0.04 MiB extra/python-tomli-w 1.0.0-6 0.04 MiB extra/python-typing_extensions 4.10.0-1 0.39 MiB extra/python-uc-micro-py 1.0.3-1 0.02 MiB core/python 3.11.8-1 107.82 MiB extra/python-blinker 1.6.3-1 0.12 MiB extra/python-certifi 2024.02.02-1 0.02 MiB extra/python-dep-logic 0.2.0-1 0.30 MiB 0.05 MiB extra/python-dotenv 1.0.1-1 0.15 MiB extra/python-filelock 3.13.3-1 0.09 MiB extra/python-findpython 0.6.0-1 0.20 MiB 0.04 MiB extra/python-hishel 0.0.25-1 0.48 MiB 0.07 MiB extra/python-httpcore 1.0.2-2 0.96 MiB extra/python-httpx 0.26.0-1 1.06 MiB extra/python-installer 0.7.0-4 0.19 MiB extra/python-msgpack 1.0.5-1 0.27 MiB extra/python-packaging 23.2-1 0.53 MiB extra/python-pbs-installer 2024.4.1-1 0.54 MiB 0.05 MiB extra/python-pdm-backend 2.1.8-2 0.43 MiB extra/python-platformdirs 4.2.0-1 0.24 MiB extra/python-pyproject-hooks 1.0.0-5 0.09 MiB extra/python-resolvelib 1.0.1-1 0.14 MiB extra/python-rich 13.7.1-1 3.30 MiB extra/python-shellingham 1.5.4-1 0.06 MiB extra/python-tomlkit 0.12.4-1 0.61 MiB extra/python-truststore 0.8.0-2 0.16 MiB 0.04 MiB extra/python-unearth 0.15.1-1 0.53 MiB 0.10 MiB extra/python-virtualenv 20.25.0-1 4.69 MiB extra/python-zstandard 0.22.0-1 1.18 MiB Total Download Size: 0.35 MiB Total Installed Size: 145.06 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-unearth-0.15.1-1-any downloading... python-hishel-0.0.25-1-any downloading... python-dep-logic-0.2.0-1-any downloading... python-pbs-installer-2024.4.1-1-any downloading... python-findpython-0.6.0-1-any downloading... python-truststore-0.8.0-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libnsl... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] mpdecimal: for decimal xz: for lzma [installed] tk: for tkinter installing python-blinker... installing python-certifi... installing python-packaging... installing python-dep-logic... installing python-click... installing python-dotenv... Optional dependencies for python-dotenv ipython: ipython support installing python-filelock... installing python-findpython... installing python-idna... installing python-sniffio... installing python-anyio... Optional dependencies for python-anyio python-trio: trio backend python-outcome: trio backend python-uvloop: use uvloop for asyncio backend python-pytest: pytest plugin installing python-h11... installing python-httpcore... Optional dependencies for python-httpcore python-h2: for HTTP/2 support python-socksio: for SOCKS support python-anyio: for asyncio backend [installed] python-trio: for trio backend python-sniffio: for async support [installed] installing python-httpx... Optional dependencies for python-httpx python-brotli: for brotli response decompression python-brotlicffi: for brotli response decompression python-h2: HTTP/2 support python-socksio: SOCKS proxy support python-click: command line client support [installed] python-rich: command line client support [pending] python-pygments: command line client support [pending] python-trio: alternative async library installing python-typing_extensions... installing python-hishel... Optional dependencies for python-hishel python-boto3: for S3 support python-pyyaml: for YAML support python-redis: for Redis support python-anysqlite: for SQLite support installing python-installer... installing python-msgpack... installing python-pbs-installer... Optional dependencies for python-pbs-installer python-httpx: for download support [installed] python-zstandard: for zstd installation support [pending] installing python-pyproject-metadata... installing python-tomli-w... installing python-pdm-backend... Optional dependencies for python-pdm-backend python-setuptools: for setuptools support python-editables: for editables backend support installing python-platformdirs... installing python-pyproject-hooks... installing python-resolvelib... installing python-colorama... installing python-uc-micro-py... installing python-mdurl... installing python-markdown-it-py... Optional dependencies for python-markdown-it-py python-mdit_py_plugins: core plugins installing python-pygments... installing python-rich... installing python-shellingham... installing python-tomlkit... installing python-truststore... Optional dependencies for python-truststore python-urllib3: when injecting into SSLContext via urllib3 installing python-unearth... Optional dependencies for python-unearth python-keyring: use keyring for authentication python-requests: use legacy facilities for download installing python-distlib... installing python-virtualenv... installing python-zstandard... Optional dependencies for python-zstandard python-cffi [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (22) New Version Net Change Download Size extra/python-autocommand 2.2.2-4 0.08 MiB extra/python-fastjsonschema 2.19.1-1 0.30 MiB extra/python-inflect 7.2.0-1 0.39 MiB extra/python-iniconfig 2.0.0-4 0.04 MiB extra/python-jaraco.context 4.3.0-3 0.04 MiB extra/python-jaraco.functools 4.0.0-1 0.07 MiB extra/python-jaraco.text 3.12.0-1.1 0.09 MiB extra/python-markupsafe 2.1.5-1 0.08 MiB extra/python-more-itertools 10.2.0-1 0.64 MiB extra/python-ordered-set 4.1.0-4 0.07 MiB extra/python-pluggy 1.4.0-2 0.21 MiB extra/python-tomli 2.0.1-3 0.11 MiB extra/python-trove-classifiers 2024.3.25-1 0.12 MiB extra/python-typeguard 4.2.1-1 0.42 MiB extra/python-validate-pyproject 0.13-1 0.29 MiB extra/python-werkzeug 2.3.8-1 2.77 MiB extra/python-build 1.1.1-2 0.69 MiB extra/python-pytest 1:8.1.1-1 4.18 MiB extra/python-pytest-httpserver 1.0.10-1 0.24 MiB 0.04 MiB extra/python-pytest-mock 3.13.0-1 0.10 MiB 0.02 MiB extra/python-setuptools 1:69.0.3-4 4.68 MiB extra/python-wheel 0.43.0-1 0.28 MiB Total Download Size: 0.06 MiB Total Installed Size: 15.88 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytest-httpserver-1.0.10-1-any downloading... python-pytest-mock-3.13.0-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-build... Optional dependencies for python-build python-virtualenv: Use virtualenv for build isolation [installed] installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-typeguard... installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-tomli... installing python-fastjsonschema... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing python-iniconfig... installing python-pluggy... installing python-pytest... installing python-markupsafe... installing python-werkzeug... installing python-pytest-httpserver... installing python-pytest-mock... [?25h==> Retrieving sources...  -> Found pdm-2.13.2.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting pdm-2.13.2.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... - Adding .pdm-build/pdm-2.13.2.dist-info/METADATA -> pdm-2.13.2.dist-info/METADATA - Adding .pdm-build/pdm-2.13.2.dist-info/WHEEL -> pdm-2.13.2.dist-info/WHEEL - Adding .pdm-build/pdm-2.13.2.dist-info/entry_points.txt -> pdm-2.13.2.dist-info/entry_points.txt - Adding .pdm-build/pdm-2.13.2.dist-info/licenses/LICENSE -> pdm-2.13.2.dist-info/licenses/LICENSE - Adding src/pdm/__main__.py -> pdm/__main__.py - Adding src/pdm/__version__.py -> pdm/__version__.py - Adding src/pdm/_types.py -> pdm/_types.py - Adding src/pdm/builders/__init__.py -> pdm/builders/__init__.py - Adding src/pdm/builders/base.py -> pdm/builders/base.py - Adding src/pdm/builders/editable.py -> pdm/builders/editable.py - Adding src/pdm/builders/sdist.py -> pdm/builders/sdist.py - Adding src/pdm/builders/wheel.py -> pdm/builders/wheel.py - Adding src/pdm/cli/__init__.py -> pdm/cli/__init__.py - Adding src/pdm/cli/actions.py -> pdm/cli/actions.py - Adding src/pdm/cli/commands/__init__.py -> pdm/cli/commands/__init__.py - Adding src/pdm/cli/commands/add.py -> pdm/cli/commands/add.py - Adding src/pdm/cli/commands/base.py -> pdm/cli/commands/base.py - Adding src/pdm/cli/commands/build.py -> pdm/cli/commands/build.py - Adding src/pdm/cli/commands/cache.py -> pdm/cli/commands/cache.py - Adding src/pdm/cli/commands/completion.py -> pdm/cli/commands/completion.py - Adding src/pdm/cli/commands/config.py -> pdm/cli/commands/config.py - Adding src/pdm/cli/commands/export.py -> pdm/cli/commands/export.py - Adding src/pdm/cli/commands/fix/__init__.py -> pdm/cli/commands/fix/__init__.py - Adding src/pdm/cli/commands/fix/fixers.py -> pdm/cli/commands/fix/fixers.py - Adding src/pdm/cli/commands/import_cmd.py -> pdm/cli/commands/import_cmd.py - Adding src/pdm/cli/commands/info.py -> pdm/cli/commands/info.py - Adding src/pdm/cli/commands/init.py -> pdm/cli/commands/init.py - Adding src/pdm/cli/commands/install.py -> pdm/cli/commands/install.py - Adding src/pdm/cli/commands/list.py -> pdm/cli/commands/list.py - Adding src/pdm/cli/commands/lock.py -> pdm/cli/commands/lock.py - Adding src/pdm/cli/commands/outdated.py -> pdm/cli/commands/outdated.py - Adding src/pdm/cli/commands/publish/__init__.py -> pdm/cli/commands/publish/__init__.py - Adding src/pdm/cli/commands/publish/package.py -> pdm/cli/commands/publish/package.py - Adding src/pdm/cli/commands/publish/repository.py -> pdm/cli/commands/publish/repository.py - Adding src/pdm/cli/commands/python.py -> pdm/cli/commands/python.py - Adding src/pdm/cli/commands/remove.py -> pdm/cli/commands/remove.py - Adding src/pdm/cli/commands/run.py -> pdm/cli/commands/run.py - Adding src/pdm/cli/commands/search.py -> pdm/cli/commands/search.py - Adding src/pdm/cli/commands/self_cmd.py -> pdm/cli/commands/self_cmd.py - Adding src/pdm/cli/commands/show.py -> pdm/cli/commands/show.py - Adding src/pdm/cli/commands/sync.py -> pdm/cli/commands/sync.py - Adding src/pdm/cli/commands/update.py -> pdm/cli/commands/update.py - Adding src/pdm/cli/commands/use.py -> pdm/cli/commands/use.py - Adding src/pdm/cli/commands/venv/__init__.py -> pdm/cli/commands/venv/__init__.py - Adding src/pdm/cli/commands/venv/activate.py -> pdm/cli/commands/venv/activate.py - Adding src/pdm/cli/commands/venv/backends.py -> pdm/cli/commands/venv/backends.py - Adding src/pdm/cli/commands/venv/create.py -> pdm/cli/commands/venv/create.py - Adding src/pdm/cli/commands/venv/list.py -> pdm/cli/commands/venv/list.py - Adding src/pdm/cli/commands/venv/purge.py -> pdm/cli/commands/venv/purge.py - Adding src/pdm/cli/commands/venv/remove.py -> pdm/cli/commands/venv/remove.py - Adding src/pdm/cli/commands/venv/utils.py -> pdm/cli/commands/venv/utils.py - Adding src/pdm/cli/completions/__init__.py -> pdm/cli/completions/__init__.py - Adding src/pdm/cli/completions/pdm.bash -> pdm/cli/completions/pdm.bash - Adding src/pdm/cli/completions/pdm.fish -> pdm/cli/completions/pdm.fish - Adding src/pdm/cli/completions/pdm.ps1 -> pdm/cli/completions/pdm.ps1 - Adding src/pdm/cli/completions/pdm.zsh -> pdm/cli/completions/pdm.zsh - Adding src/pdm/cli/filters.py -> pdm/cli/filters.py - Adding src/pdm/cli/hooks.py -> pdm/cli/hooks.py - Adding src/pdm/cli/options.py -> pdm/cli/options.py - Adding src/pdm/cli/templates/__init__.py -> pdm/cli/templates/__init__.py - Adding src/pdm/cli/templates/default/.gitignore -> pdm/cli/templates/default/.gitignore - Adding src/pdm/cli/templates/default/README.md -> pdm/cli/templates/default/README.md - Adding src/pdm/cli/templates/default/__init__.py -> pdm/cli/templates/default/__init__.py - Adding src/pdm/cli/templates/default/pyproject.toml -> pdm/cli/templates/default/pyproject.toml - Adding src/pdm/cli/templates/default/src/example_package/__init__.py -> pdm/cli/templates/default/src/example_package/__init__.py - Adding src/pdm/cli/templates/default/tests/__init__.py -> pdm/cli/templates/default/tests/__init__.py - Adding src/pdm/cli/templates/minimal/__init__.py -> pdm/cli/templates/minimal/__init__.py - Adding src/pdm/cli/templates/minimal/pyproject.toml -> pdm/cli/templates/minimal/pyproject.toml - Adding src/pdm/cli/utils.py -> pdm/cli/utils.py - Adding src/pdm/compat.py -> pdm/compat.py - Adding src/pdm/core.py -> pdm/core.py - Adding src/pdm/environments/__init__.py -> pdm/environments/__init__.py - Adding src/pdm/environments/base.py -> pdm/environments/base.py - Adding src/pdm/environments/local.py -> pdm/environments/local.py - Adding src/pdm/environments/python.py -> pdm/environments/python.py - Adding src/pdm/exceptions.py -> pdm/exceptions.py - Adding src/pdm/formats/__init__.py -> pdm/formats/__init__.py - Adding src/pdm/formats/base.py -> pdm/formats/base.py - Adding src/pdm/formats/flit.py -> pdm/formats/flit.py - Adding src/pdm/formats/pipfile.py -> pdm/formats/pipfile.py - Adding src/pdm/formats/poetry.py -> pdm/formats/poetry.py - Adding src/pdm/formats/requirements.py -> pdm/formats/requirements.py - Adding src/pdm/formats/setup_py.py -> pdm/formats/setup_py.py - Adding src/pdm/installers/__init__.py -> pdm/installers/__init__.py - Adding src/pdm/installers/core.py -> pdm/installers/core.py - Adding src/pdm/installers/installers.py -> pdm/installers/installers.py - Adding src/pdm/installers/manager.py -> pdm/installers/manager.py - Adding src/pdm/installers/synchronizers.py -> pdm/installers/synchronizers.py - Adding src/pdm/installers/uninstallers.py -> pdm/installers/uninstallers.py - Adding .pdm-build/pdm/models/VERSION -> pdm/models/VERSION - Adding src/pdm/models/__init__.py -> pdm/models/__init__.py - Adding src/pdm/models/auth.py -> pdm/models/auth.py - Adding src/pdm/models/backends.py -> pdm/models/backends.py - Adding src/pdm/models/cached_package.py -> pdm/models/cached_package.py - Adding src/pdm/models/caches.py -> pdm/models/caches.py - Adding src/pdm/models/candidates.py -> pdm/models/candidates.py - Adding src/pdm/models/finder.py -> pdm/models/finder.py - Adding src/pdm/models/in_process/__init__.py -> pdm/models/in_process/__init__.py - Adding src/pdm/models/in_process/get_abis.py -> pdm/models/in_process/get_abis.py - Adding src/pdm/models/in_process/parse_setup.py -> pdm/models/in_process/parse_setup.py - Adding src/pdm/models/in_process/pep508.py -> pdm/models/in_process/pep508.py - Adding src/pdm/models/in_process/sysconfig_get_paths.py -> pdm/models/in_process/sysconfig_get_paths.py - Adding src/pdm/models/markers.py -> pdm/models/markers.py - Adding src/pdm/models/project_info.py -> pdm/models/project_info.py - Adding src/pdm/models/python.py -> pdm/models/python.py - Adding src/pdm/models/python_max_versions.json -> pdm/models/python_max_versions.json - Adding src/pdm/models/reporter.py -> pdm/models/reporter.py - Adding src/pdm/models/repositories.py -> pdm/models/repositories.py - Adding src/pdm/models/requirements.py -> pdm/models/requirements.py - Adding src/pdm/models/search.py -> pdm/models/search.py - Adding src/pdm/models/session.py -> pdm/models/session.py - Adding src/pdm/models/setup.py -> pdm/models/setup.py - Adding src/pdm/models/specifiers.py -> pdm/models/specifiers.py - Adding src/pdm/models/venv.py -> pdm/models/venv.py - Adding src/pdm/models/versions.py -> pdm/models/versions.py - Adding src/pdm/models/working_set.py -> pdm/models/working_set.py - Adding src/pdm/pep582/__init__.py -> pdm/pep582/__init__.py - Adding src/pdm/pep582/sitecustomize.py -> pdm/pep582/sitecustomize.py - Adding src/pdm/project/__init__.py -> pdm/project/__init__.py - Adding src/pdm/project/config.py -> pdm/project/config.py - Adding src/pdm/project/core.py -> pdm/project/core.py - Adding src/pdm/project/lockfile.py -> pdm/project/lockfile.py - Adding src/pdm/project/project_file.py -> pdm/project/project_file.py - Adding src/pdm/project/toml_file.py -> pdm/project/toml_file.py - Adding src/pdm/py.typed -> pdm/py.typed - Adding src/pdm/pytest.py -> pdm/pytest.py - Adding src/pdm/resolver/__init__.py -> pdm/resolver/__init__.py - Adding src/pdm/resolver/core.py -> pdm/resolver/core.py - Adding src/pdm/resolver/graph.py -> pdm/resolver/graph.py - Adding src/pdm/resolver/providers.py -> pdm/resolver/providers.py - Adding src/pdm/resolver/python.py -> pdm/resolver/python.py - Adding src/pdm/resolver/reporters.py -> pdm/resolver/reporters.py - Adding src/pdm/signals.py -> pdm/signals.py - Adding src/pdm/termui.py -> pdm/termui.py - Adding src/pdm/utils.py -> pdm/utils.py - Adding pdm-2.13.2.dist-info/RECORD -> pdm-2.13.2.dist-info/RECORD Successfully built pdm-2.13.2-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.11.8, pytest-8.1.1, pluggy-1.4.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-pdm/src/pdm-2.13.2 configfile: pyproject.toml testpaths: tests/ plugins: mock-3.13.0, pytest_httpserver-1.0.10, typeguard-4.2.1, anyio-4.3.0 collecting ... collected 849 items / 1 deselected / 848 selected tests/cli/test_add.py::test_add_package[False] PASSED [ 0%] tests/cli/test_add.py::test_add_package[True] PASSED [ 0%] tests/cli/test_add.py::test_add_package_no_lock[False] PASSED [ 0%] tests/cli/test_add.py::test_add_package_no_lock[True] PASSED [ 0%] tests/cli/test_add.py::test_add_command PASSED [ 0%] tests/cli/test_add.py::test_add_package_to_custom_group PASSED [ 0%] tests/cli/test_add.py::test_add_package_to_custom_dev_group PASSED [ 0%] tests/cli/test_add.py::test_add_editable_package PASSED [ 0%] tests/cli/test_add.py::test_add_editable_package_to_metadata_forbidden PASSED [ 1%] tests/cli/test_add.py::test_non_editable_override_editable PASSED [ 1%] tests/cli/test_add.py::test_add_remote_package_url[False] PASSED [ 1%] tests/cli/test_add.py::test_add_remote_package_url[True] PASSED [ 1%] tests/cli/test_add.py::test_add_no_install PASSED [ 1%] tests/cli/test_add.py::test_add_package_save_exact PASSED [ 1%] tests/cli/test_add.py::test_add_package_save_wildcard PASSED [ 1%] tests/cli/test_add.py::test_add_package_save_minimum PASSED [ 1%] tests/cli/test_add.py::test_add_package_update_reuse PASSED [ 2%] tests/cli/test_add.py::test_add_package_update_eager PASSED [ 2%] tests/cli/test_add.py::test_add_package_with_mismatch_marker PASSED [ 2%] tests/cli/test_add.py::test_add_dependency_from_multiple_parents PASSED [ 2%] tests/cli/test_add.py::test_add_packages_without_self PASSED [ 2%] tests/cli/test_add.py::test_add_package_unconstrained_rewrite_specifier PASSED [ 2%] tests/cli/test_add.py::test_add_cached_vcs_requirement PASSED [ 2%] tests/cli/test_add.py::test_add_with_dry_run PASSED [ 2%] tests/cli/test_add.py::test_add_with_prerelease PASSED [ 2%] tests/cli/test_add.py::test_add_editable_package_with_extras PASSED [ 3%] tests/cli/test_add.py::test_add_package_with_local_version PASSED [ 3%] tests/cli/test_add.py::test_add_group_to_lockfile PASSED [ 3%] tests/cli/test_add.py::test_add_group_to_lockfile_without_package PASSED [ 3%] tests/cli/test_add.py::test_add_update_reuse_installed PASSED [ 3%] tests/cli/test_add.py::test_add_update_reuse_installed_config PASSED [ 3%] tests/cli/test_add.py::test_add_disable_cache PASSED [ 3%] tests/cli/test_build.py::test_build_command PASSED [ 3%] tests/cli/test_build.py::test_build_global_project_forbidden PASSED [ 4%] tests/cli/test_build.py::test_build_single_module PASSED [ 4%] tests/cli/test_build.py::test_build_single_module_with_readme PASSED [ 4%] tests/cli/test_build.py::test_build_package PASSED [ 4%] tests/cli/test_build.py::test_build_src_package PASSED [ 4%] tests/cli/test_build.py::test_build_package_include PASSED [ 4%] tests/cli/test_build.py::test_build_src_package_by_include PASSED [ 4%] tests/cli/test_build.py::test_build_with_config_settings PASSED [ 4%] tests/cli/test_build.py::test_cli_build_with_config_settings PASSED [ 4%] tests/cli/test_build.py::test_build_with_no_isolation[True] PASSED [ 5%] tests/cli/test_build.py::test_build_with_no_isolation[False] PASSED [ 5%] tests/cli/test_build.py::test_build_ignoring_pip_environment PASSED [ 5%] tests/cli/test_cache.py::test_cache_list PASSED [ 5%] tests/cli/test_cache.py::test_cache_list_pattern PASSED [ 5%] tests/cli/test_cache.py::test_cache_remove_pattern PASSED [ 5%] tests/cli/test_cache.py::test_cache_remove_wildcard PASSED [ 5%] tests/cli/test_cache.py::test_cache_clear PASSED [ 5%] tests/cli/test_cache.py::test_cache_remove_no_pattern PASSED [ 6%] tests/cli/test_cache.py::test_cache_info PASSED [ 6%] tests/cli/test_cache.py::test_hash_cache[http://fixtures.test/artifacts/demo-0.0.1.tar.gz-sha256:d57bf5e3b8723e4fc68275159dcc4ca983d86d4c84220a4d715d491401f27db2] PASSED [ 6%] tests/cli/test_cache.py::test_hash_cache[file:///build/python-pdm/src/pdm-2.13.2/tests/fixtures/artifacts/demo-0.0.1.tar.gz-sha256:d57bf5e3b8723e4fc68275159dcc4ca983d86d4c84220a4d715d491401f27db2] PASSED [ 6%] tests/cli/test_cache.py::test_hash_cache[http://fixtures.test/artifacts/demo-0.0.1.tar.gz#sha384=9130e5e4912bc78b1ffabbf406d56bc74b9165b0adc8c627168b7b563b80d5ff6c30e269398d01144ee52aa33292682d-sha384:9130e5e4912bc78b1ffabbf406d56bc74b9165b0adc8c627168b7b563b80d5ff6c30e269398d01144ee52aa33292682d] PASSED [ 6%] tests/cli/test_cache.py::test_hash_cache[http://fixtures.test/artifacts/demo-0.0.1.tar.gz#md5=5218509812c9fcb4646adde8fd3307e1-sha256:d57bf5e3b8723e4fc68275159dcc4ca983d86d4c84220a4d715d491401f27db2] PASSED [ 6%] tests/cli/test_cache.py::test_clear_package_cache PASSED [ 6%] tests/cli/test_config.py::test_config_command PASSED [ 6%] tests/cli/test_config.py::test_config_get_command PASSED [ 6%] tests/cli/test_config.py::test_config_set_command PASSED [ 7%] tests/cli/test_config.py::test_config_del_command PASSED [ 7%] tests/cli/test_config.py::test_config_env_var_shadowing PASSED [ 7%] tests/cli/test_config.py::test_config_project_global_precedence PASSED [ 7%] tests/cli/test_config.py::test_specify_config_file PASSED [ 7%] tests/cli/test_config.py::test_default_repository_setting PASSED [ 7%] tests/cli/test_config.py::test_repository_config_not_available_on_project PASSED [ 7%] tests/cli/test_config.py::test_repository_config_key_short PASSED [ 7%] tests/cli/test_config.py::test_repository_overwrite_default PASSED [ 8%] tests/cli/test_config.py::test_hide_password_in_output_repository PASSED [ 8%] tests/cli/test_config.py::test_hide_password_in_output_pypi PASSED [ 8%] tests/cli/test_config.py::test_config_get_repository PASSED [ 8%] tests/cli/test_config.py::test_config_set_repository PASSED [ 8%] tests/cli/test_config.py::test_config_del_repository PASSED [ 8%] tests/cli/test_config.py::test_config_password_save_into_keyring PASSED [ 8%] tests/cli/test_config.py::test_keyring_operation_error_disables_itself PASSED [ 8%] tests/cli/test_fix.py::test_fix_non_existing_problem PASSED [ 8%] tests/cli/test_fix.py::test_fix_individual_problem PASSED [ 9%] tests/cli/test_fix.py::test_show_fix_command PASSED [ 9%] tests/cli/test_fix.py::test_show_fix_command_global_project PASSED [ 9%] tests/cli/test_fix.py::test_fix_project_config PASSED [ 9%] tests/cli/test_hooks.py::test_pre_script_fail_fast PASSED [ 9%] tests/cli/test_hooks.py::test_pre_and_post_scripts PASSED [ 9%] tests/cli/test_hooks.py::test_composite_runs_all_hooks PASSED [ 9%] tests/cli/test_hooks.py::test_skip_all_hooks_option[:all] PASSED [ 9%] tests/cli/test_hooks.py::test_skip_all_hooks_option[:pre,:post] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[--skip pre_test,post_first,second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[-k pre_test,post_first,second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[--skip pre_test --skip post_first --skip second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[-k pre_test -k post_first -k second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[--skip pre_test --skip post_first,second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option[-k pre_test -k post_first,second] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option_default_from_env[pre_test-expected0] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option_default_from_env[pre_test,post_test-expected1] PASSED [ 10%] tests/cli/test_hooks.py::test_skip_option_default_from_env[pre_test , post_test-expected2] PASSED [ 11%] tests/cli/test_hooks.py::test_skip_option_default_from_env[None-None] PASSED [ 11%] tests/cli/test_hooks.py::test_skip_option_default_from_env[ -None] PASSED [ 11%] tests/cli/test_hooks.py::test_skip_option_default_from_env[ , -None] PASSED [ 11%] tests/cli/test_hooks.py::test_hooks[add] PASSED [ 11%] tests/cli/test_hooks.py::test_hooks[build] PASSED [ 11%] tests/cli/test_hooks.py::test_hooks[init] PASSED [ 11%] tests/cli/test_hooks.py::test_hooks[install] PASSED [ 11%] tests/cli/test_hooks.py::test_hooks[lock] PASSED [ 12%] tests/cli/test_hooks.py::test_hooks[publish] PASSED [ 12%] tests/cli/test_hooks.py::test_hooks[remove] PASSED [ 12%] tests/cli/test_hooks.py::test_hooks[sync] PASSED [ 12%] tests/cli/test_hooks.py::test_hooks[update] PASSED [ 12%] tests/cli/test_hooks.py::test_hooks[use] PASSED [ 12%] tests/cli/test_hooks.py::test_skip_option_from_signal[add-pre_lock] PASSED [ 12%] tests/cli/test_hooks.py::test_skip_option_from_signal[add-post_lock] PASSED [ 12%] tests/cli/test_hooks.py::test_skip_option_from_signal[build-pre_build] PASSED [ 12%] tests/cli/test_hooks.py::test_skip_option_from_signal[build-post_build] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[init-post_init] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[install-pre_install] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[install-post_install] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[install-pre_lock] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[install-post_lock] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[lock-pre_lock] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[lock-post_lock] PASSED [ 13%] tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_publish] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_build] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_build] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_publish] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[remove-pre_lock] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[remove-post_lock] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[sync-pre_install] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[sync-post_install] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[update-pre_install] PASSED [ 14%] tests/cli/test_hooks.py::test_skip_option_from_signal[update-post_install] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_option_from_signal[update-pre_lock] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_option_from_signal[update-post_lock] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_option_from_signal[use-post_use] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-add] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-build] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-init] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-install] PASSED [ 15%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-lock] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-publish] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-remove] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-sync] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-update] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-use] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-add] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-build] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-init] PASSED [ 16%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-install] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-lock] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-publish] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-remove] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-sync] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-update] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-use] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-add] PASSED [ 17%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-build] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-init] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-install] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-lock] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-publish] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-remove] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-sync] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-update] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-use] PASSED [ 18%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-add] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-build] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-init] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-install] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-lock] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-publish] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-remove] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-sync] PASSED [ 19%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-update] PASSED [ 20%] tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-use] PASSED [ 20%] tests/cli/test_init.py::test_init_validate_python_requires PASSED [ 20%] tests/cli/test_init.py::test_init_command PASSED [ 20%] tests/cli/test_init.py::test_init_command_library PASSED [ 20%] tests/cli/test_init.py::test_init_non_interactive PASSED [ 20%] tests/cli/test_init.py::test_init_auto_create_venv PASSED [ 20%] tests/cli/test_init.py::test_init_auto_create_venv_specify_python PASSED [ 20%] tests/cli/test_init.py::test_init_with_backend_default_library PASSED [ 20%] tests/cli/test_init.py::test_init_with_backend_default_library_non_interactive PASSED [ 21%] tests/cli/test_install.py::test_sync_packages_with_group_all PASSED [ 21%] tests/cli/test_install.py::test_sync_packages_with_all_dev PASSED [ 21%] tests/cli/test_install.py::test_sync_no_lockfile PASSED [ 21%] tests/cli/test_install.py::test_sync_clean_packages PASSED [ 21%] tests/cli/test_install.py::test_sync_dry_run PASSED [ 21%] tests/cli/test_install.py::test_sync_only_different PASSED [ 21%] tests/cli/test_install.py::test_sync_in_sequential_mode PASSED [ 21%] tests/cli/test_install.py::test_sync_packages_with_groups PASSED [ 22%] tests/cli/test_install.py::test_sync_production_packages[prod_option0] PASSED [ 22%] tests/cli/test_install.py::test_sync_production_packages[prod_option1] PASSED [ 22%] tests/cli/test_install.py::test_sync_without_self PASSED [ 22%] tests/cli/test_install.py::test_sync_with_index_change PASSED [ 22%] tests/cli/test_install.py::test_install_command PASSED [ 22%] tests/cli/test_install.py::test_sync_command PASSED [ 22%] tests/cli/test_install.py::test_install_with_lockfile PASSED [ 22%] tests/cli/test_install.py::test_install_with_dry_run PASSED [ 22%] tests/cli/test_install.py::test_install_frozen_lockfile PASSED [ 23%] tests/cli/test_install.py::test_install_no_lock_deprecated PASSED [ 23%] tests/cli/test_install.py::test_install_check PASSED [ 23%] tests/cli/test_install.py::test_sync_with_only_keep_option PASSED [ 23%] tests/cli/test_install.py::test_install_referencing_self_package PASSED [ 23%] tests/cli/test_install.py::test_install_monorepo_with_rel_paths PASSED [ 23%] tests/cli/test_install.py::test_install_retry PASSED [ 23%] tests/cli/test_install.py::test_install_fail_fast PASSED [ 23%] tests/cli/test_install.py::test_install_groups_not_in_lockfile PASSED [ 24%] tests/cli/test_install.py::test_install_locked_groups PASSED [ 24%] tests/cli/test_install.py::test_install_groups_and_lock PASSED [ 24%] tests/cli/test_install.py::test_install_requirement_with_extras PASSED [ 24%] tests/cli/test_install.py::test_fix_package_type_and_update PASSED [ 24%] tests/cli/test_install.py::test_install_all_with_excluded_groups[-G :all --without tz,ssl] PASSED [ 24%] tests/cli/test_install.py::test_install_all_with_excluded_groups[-G :all --without tz --without ssl] PASSED [ 24%] tests/cli/test_install.py::test_install_all_with_excluded_groups[--with all --without tz,ssl] PASSED [ 24%] tests/cli/test_install.py::test_install_all_with_excluded_groups[--with all --without tz --without ssl] PASSED [ 25%] tests/cli/test_install.py::test_install_all_with_excluded_groups[--without tz --without ssl] PASSED [ 25%] tests/cli/test_install.py::test_install_all_with_excluded_groups[--without tz,ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[-G :all --without tz,ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[-G :all --without tz --without ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[--with all --without tz,ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[--with all --without tz --without ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[--without tz --without ssl] PASSED [ 25%] tests/cli/test_install.py::test_sync_all_with_excluded_groups[--without tz,ssl] PASSED [ 25%] tests/cli/test_install.py::test_excluded_groups_ignored_if_prod_passed PASSED [ 26%] tests/cli/test_install.py::test_excluded_groups_ignored_if_dev_passed PASSED [ 26%] tests/cli/test_list.py::test_list_command PASSED [ 26%] tests/cli/test_list.py::test_list_graph_command PASSED [ 26%] tests/cli/test_list.py::test_list_dependency_graph PASSED [ 26%] tests/cli/test_list.py::test_list_dependency_graph_include_exclude PASSED [ 26%] tests/cli/test_list.py::test_list_dependency_graph_with_circular_forward PASSED [ 26%] tests/cli/test_list.py::test_list_dependency_graph_with_circular_reverse PASSED [ 26%] tests/cli/test_list.py::test_list_reverse_without_graph_flag PASSED [ 27%] tests/cli/test_list.py::test_list_reverse_dependency_graph PASSED [ 27%] tests/cli/test_list.py::test_list_json PASSED [ 27%] tests/cli/test_list.py::test_list_json_with_pattern PASSED [ 27%] tests/cli/test_list.py::test_list_json_reverse PASSED [ 27%] tests/cli/test_list.py::test_list_reverse_json_with_pattern PASSED [ 27%] tests/cli/test_list.py::test_list_json_with_circular_forward PASSED [ 27%] tests/cli/test_list.py::test_list_json_with_circular_reverse PASSED [ 27%] tests/cli/test_list.py::test_list_field_unknown PASSED [ 27%] tests/cli/test_list.py::test_list_sort_unknown PASSED [ 28%] tests/cli/test_list.py::test_list_freeze_banned_options PASSED [ 28%] tests/cli/test_list.py::test_list_multiple_export_formats PASSED [ 28%] tests/cli/test_list.py::test_list_bare PASSED [ 28%] tests/cli/test_list.py::test_list_bare_sorted_name PASSED [ 28%] tests/cli/test_list.py::test_list_with_pattern PASSED [ 28%] tests/cli/test_list.py::test_list_freeze PASSED [ 28%] tests/cli/test_list.py::test_list_bare_sorted_version PASSED [ 28%] tests/cli/test_list.py::test_list_bare_sorted_version_resolve PASSED [ 29%] tests/cli/test_list.py::test_list_bare_fields_licences PASSED [ 29%] tests/cli/test_list.py::test_list_csv_fields_licences PASSED [ 29%] tests/cli/test_list.py::test_list_json_fields_licences PASSED [ 29%] tests/cli/test_list.py::test_list_markdown_fields_licences PASSED [ 29%] tests/cli/test_list.py::test_list_csv_include_exclude_valid PASSED [ 29%] tests/cli/test_list.py::test_list_packages_in_given_venv PASSED [ 29%] tests/cli/test_list.py::test_list_csv_include_exclude PASSED [ 29%] tests/cli/test_lock.py::test_lock_command PASSED [ 29%] tests/cli/test_lock.py::test_lock_dependencies PASSED [ 30%] tests/cli/test_lock.py::test_lock_refresh[args0] PASSED [ 30%] tests/cli/test_lock.py::test_lock_refresh[args1] PASSED [ 30%] tests/cli/test_lock.py::test_lock_refresh_keep_consistent PASSED [ 30%] tests/cli/test_lock.py::test_lock_check_no_change_success PASSED [ 30%] tests/cli/test_lock.py::test_lock_check_change_fails PASSED [ 30%] tests/cli/test_lock.py::test_innovations_with_specified_lockfile PASSED [ 30%] tests/cli/test_lock.py::test_skip_editable_dependencies_in_metadata PASSED [ 30%] tests/cli/test_lock.py::test_lock_selected_groups PASSED [ 31%] tests/cli/test_lock.py::test_lock_self_referencing_groups[False] PASSED [ 31%] tests/cli/test_lock.py::test_lock_self_referencing_groups[True] PASSED [ 31%] tests/cli/test_lock.py::test_lock_multiple_platform_wheels PASSED [ 31%] tests/cli/test_lock.py::test_lock_current_platform_wheels[args0] PASSED [ 31%] tests/cli/test_lock.py::test_lock_current_platform_wheels[args1] PASSED [ 31%] tests/cli/test_lock.py::test_parse_lock_strategy_group_options PASSED [ 31%] tests/cli/test_lock.py::test_apply_lock_strategy_changes PASSED [ 31%] tests/cli/test_lock.py::test_apply_lock_strategy_changes_invalid[strategy0] PASSED [ 31%] tests/cli/test_lock.py::test_apply_lock_strategy_changes_invalid[strategy1] PASSED [ 32%] tests/cli/test_lock.py::test_lock_direct_minimal_versions PASSED [ 32%] tests/cli/test_lock.py::test_lock_direct_minimal_versions_real[args0] PASSED [ 32%] tests/cli/test_lock.py::test_lock_direct_minimal_versions_real[args1] PASSED [ 32%] tests/cli/test_lock.py::test_lockfile_compatibility[4.1.0-2] PASSED [ 32%] tests/cli/test_lock.py::test_lockfile_compatibility[4.1.1-1] PASSED [ 32%] tests/cli/test_lock.py::test_lockfile_compatibility[4.1.2-3] PASSED [ 32%] tests/cli/test_lock.py::test_lockfile_compatibility[4.2-0] PASSED [ 32%] tests/cli/test_lock.py::test_lockfile_compatibility[3.0-0] PASSED [ 33%] tests/cli/test_lock.py::test_lockfile_compatibility[4.0.1-2] PASSED [ 33%] tests/cli/test_lock.py::test_lock_default_inherit_metadata PASSED [ 33%] tests/cli/test_lock.py::test_lock_inherit_metadata_strategy PASSED [ 33%] tests/cli/test_lock.py::test_lock_exclude_newer PASSED [ 33%] tests/cli/test_others.py::test_build_distributions PASSED [ 33%] tests/cli/test_others.py::test_project_no_init_error PASSED [ 33%] tests/cli/test_others.py::test_help_option PASSED [ 33%] tests/cli/test_others.py::test_pep582_option PASSED [ 33%] tests/cli/test_others.py::test_info_command PASSED [ 34%] tests/cli/test_others.py::test_info_command_json PASSED [ 34%] tests/cli/test_others.py::test_info_global_project PASSED [ 34%] tests/cli/test_others.py::test_info_with_multiple_venvs PASSED [ 34%] tests/cli/test_others.py::test_global_project_other_location PASSED [ 34%] tests/cli/test_others.py::test_uncaught_error PASSED [ 34%] tests/cli/test_others.py::test_import_other_format_file[requirements.txt] PASSED [ 34%] tests/cli/test_others.py::test_import_other_format_file[Pipfile] PASSED [ 34%] tests/cli/test_others.py::test_import_other_format_file[pyproject.toml] PASSED [ 35%] tests/cli/test_others.py::test_import_other_format_file[projects/flit-demo/pyproject.toml] PASSED [ 35%] tests/cli/test_others.py::test_import_requirement_no_overwrite PASSED [ 35%] tests/cli/test_others.py::test_search_package PASSED [ 35%] tests/cli/test_others.py::test_show_package_on_pypi PASSED [ 35%] tests/cli/test_others.py::test_show_self_package PASSED [ 35%] tests/cli/test_others.py::test_export_to_requirements_txt PASSED [ 35%] tests/cli/test_others.py::test_export_doesnt_include_dep_with_extras PASSED [ 35%] tests/cli/test_others.py::test_completion_command PASSED [ 35%] tests/cli/test_others.py::test_show_update_hint PASSED [ 36%] tests/cli/test_others.py::test_export_with_platform_markers PASSED [ 36%] tests/cli/test_outdated.py::test_outdated PASSED [ 36%] tests/cli/test_publish.py::test_package_parse_metadata[demo-0.0.1-py2.py3-none-any.whl] PASSED [ 36%] tests/cli/test_publish.py::test_package_parse_metadata[demo-0.0.1.tar.gz] PASSED [ 36%] tests/cli/test_publish.py::test_package_parse_metadata[demo-0.0.1.zip] PASSED [ 36%] tests/cli/test_publish.py::test_parse_metadata_with_non_ascii_chars PASSED [ 36%] tests/cli/test_publish.py::test_package_add_signature PASSED [ 36%] tests/cli/test_publish.py::test_package_call_gpg_sign PASSED [ 37%] tests/cli/test_publish.py::test_repository_get_release_urls PASSED [ 37%] tests/cli/test_publish.py::test_publish_pick_up_asc_files PASSED [ 37%] tests/cli/test_publish.py::test_publish_package_with_signature PASSED [ 37%] tests/cli/test_publish.py::test_publish_and_build_in_one_run PASSED [ 37%] tests/cli/test_publish.py::test_publish_cli_args_and_env_var_precedence PASSED [ 37%] tests/cli/test_publish.py::test_repository_get_credentials_from_keyring PASSED [ 37%] tests/cli/test_python.py::test_install_python FAILED [ 37%] tests/cli/test_python.py::test_use_auto_install_missing FAILED [ 37%] tests/cli/test_python.py::test_use_auto_install_pick_latest FAILED [ 38%] tests/cli/test_python.py::test_use_no_auto_install PASSED [ 38%] tests/cli/test_remove.py::test_remove_command PASSED [ 38%] tests/cli/test_remove.py::test_remove_editable_packages_while_keeping_normal PASSED [ 38%] tests/cli/test_remove.py::test_remove_package[False] PASSED [ 38%] tests/cli/test_remove.py::test_remove_package[True] PASSED [ 38%] tests/cli/test_remove.py::test_remove_package_no_lock[False] PASSED [ 38%] tests/cli/test_remove.py::test_remove_package_no_lock[True] PASSED [ 38%] tests/cli/test_remove.py::test_remove_package_with_dry_run PASSED [ 39%] tests/cli/test_remove.py::test_remove_package_no_sync PASSED [ 39%] tests/cli/test_remove.py::test_remove_package_not_exist PASSED [ 39%] tests/cli/test_remove.py::test_remove_package_exist_in_multi_groups PASSED [ 39%] tests/cli/test_remove.py::test_remove_no_package PASSED [ 39%] tests/cli/test_remove.py::test_remove_package_wont_break_toml PASSED [ 39%] tests/cli/test_remove.py::test_remove_group_not_in_lockfile PASSED [ 39%] tests/cli/test_run.py::test_pep582_launcher_for_python_interpreter PASSED [ 39%] tests/cli/test_run.py::test_auto_isolate_site_packages PASSED [ 39%] tests/cli/test_run.py::test_run_with_site_packages PASSED [ 40%] tests/cli/test_run.py::test_run_command_not_found PASSED [ 40%] tests/cli/test_run.py::test_run_pass_exit_code PASSED [ 40%] tests/cli/test_run.py::test_run_cmd_script PASSED [ 40%] tests/cli/test_run.py::test_run_cmd_script_with_array PASSED [ 40%] tests/cli/test_run.py::test_run_script_pass_project_root PASSED [ 40%] tests/cli/test_run.py::test_run_shell_script PASSED [ 40%] tests/cli/test_run.py::test_run_script_with_relative_path PASSED [ 40%] tests/cli/test_run.py::test_run_non_existing_local_script PASSED [ 41%] tests/cli/test_run.py::test_run_shell_script_with_args_placeholder[with-args] PASSED [ 41%] tests/cli/test_run.py::test_run_shell_script_with_args_placeholder[without-args] PASSED [ 41%] tests/cli/test_run.py::test_run_shell_script_with_args_placeholder_with_default[with-args] PASSED [ 41%] tests/cli/test_run.py::test_run_shell_script_with_args_placeholder_with_default[with-default] PASSED [ 41%] tests/cli/test_run.py::test_run_call_script PASSED [ 41%] tests/cli/test_run.py::test_run_script_with_extra_args PASSED [ 41%] tests/cli/test_run.py::test_run_script_with_args_placeholder[as-str-with-args] PASSED [ 41%] tests/cli/test_run.py::test_run_script_with_args_placeholder[as-str-without-args] PASSED [ 41%] tests/cli/test_run.py::test_run_script_with_args_placeholder[as-list-with-args] PASSED [ 42%] tests/cli/test_run.py::test_run_script_with_args_placeholder[as-list-without-args] PASSED [ 42%] tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-str-with-args] PASSED [ 42%] tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-str-default] PASSED [ 42%] tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-list-with-args] PASSED [ 42%] tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-list-default] PASSED [ 42%] tests/cli/test_run.py::test_run_shell_script_with_pdm_placeholder PASSED [ 42%] tests/cli/test_run.py::test_run_expand_env_vars PASSED [ 42%] tests/cli/test_run.py::test_run_expand_env_vars_from_config PASSED [ 43%] tests/cli/test_run.py::test_run_script_with_env_defined PASSED [ 43%] tests/cli/test_run.py::test_run_script_with_dotenv_file PASSED [ 43%] tests/cli/test_run.py::test_run_script_override_global_env PASSED [ 43%] tests/cli/test_run.py::test_run_show_list_of_scripts PASSED [ 43%] tests/cli/test_run.py::test_run_show_list_of_scripts_hide_internals PASSED [ 43%] tests/cli/test_run.py::test_run_json_list_of_scripts PASSED [ 43%] tests/cli/test_run.py::test_run_with_another_project_root[True] PASSED [ 43%] tests/cli/test_run.py::test_run_with_another_project_root[False] PASSED [ 43%] tests/cli/test_run.py::test_import_another_sitecustomize PASSED [ 44%] tests/cli/test_run.py::test_run_with_patched_sysconfig PASSED [ 44%] tests/cli/test_run.py::test_run_composite PASSED [ 44%] tests/cli/test_run.py::test_composite_stops_on_first_failure PASSED [ 44%] tests/cli/test_run.py::test_composite_keep_going_on_failure PASSED [ 44%] tests/cli/test_run.py::test_composite_inherit_env PASSED [ 44%] tests/cli/test_run.py::test_composite_fail_on_first_missing_task PASSED [ 44%] tests/cli/test_run.py::test_composite_runs_all_hooks PASSED [ 44%] tests/cli/test_run.py::test_composite_pass_parameters_to_subtasks PASSED [ 45%] tests/cli/test_run.py::test_composite_can_pass_parameters PASSED [ 45%] tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args[with-args] PASSED [ 45%] tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args[without-args] PASSED [ 45%] tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args_with_default[with-args] PASSED [ 45%] tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args_with_default[default] PASSED [ 45%] tests/cli/test_run.py::test_composite_hooks_inherit_env PASSED [ 45%] tests/cli/test_run.py::test_composite_inherit_env_in_cascade PASSED [ 45%] tests/cli/test_run.py::test_composite_inherit_dotfile PASSED [ 45%] tests/cli/test_run.py::test_composite_can_have_commands PASSED [ 46%] tests/cli/test_run.py::test_run_shortcut PASSED [ 46%] tests/cli/test_run.py::test_run_shortcuts_dont_override_commands PASSED [ 46%] tests/cli/test_run.py::test_run_shortcut_fail_with_usage_if_script_not_found PASSED [ 46%] tests/cli/test_run.py::test_empty_positionnal_args_still_display_usage[unknown param] PASSED [ 46%] tests/cli/test_run.py::test_empty_positionnal_args_still_display_usage[not an user script] PASSED [ 46%] tests/cli/test_run.py::test_empty_positional_args_display_help PASSED [ 46%] tests/cli/test_run.py::test_run_script_changing_working_dir PASSED [ 46%] tests/cli/test_self_command.py::test_self_list PASSED [ 47%] tests/cli/test_self_command.py::test_self_list_plugins PASSED [ 47%] tests/cli/test_self_command.py::test_self_add PASSED [ 47%] tests/cli/test_self_command.py::test_self_remove PASSED [ 47%] tests/cli/test_self_command.py::test_self_update[args0-expected0] PASSED [ 47%] tests/cli/test_self_command.py::test_self_update[args1-expected1] PASSED [ 47%] tests/cli/test_self_command.py::test_self_update[args2-expected2] PASSED [ 47%] tests/cli/test_self_command.py::test_self_update_already_latest PASSED [ 47%] tests/cli/test_template.py::test_non_pyproject_template_disallowed PASSED [ 47%] tests/cli/test_template.py::test_module_project_template PASSED [ 48%] tests/cli/test_template.py::test_module_project_template_generate_application PASSED [ 48%] tests/cli/test_template.py::test_package_project_template PASSED [ 48%] tests/cli/test_update.py::test_update_packages_with_top PASSED [ 48%] tests/cli/test_update.py::test_update_command PASSED [ 48%] tests/cli/test_update.py::test_update_ignore_constraints PASSED [ 48%] tests/cli/test_update.py::test_update_all_packages[reuse] PASSED [ 48%] tests/cli/test_update.py::test_update_all_packages[all] PASSED [ 48%] tests/cli/test_update.py::test_update_no_lock PASSED [ 49%] tests/cli/test_update.py::test_update_dry_run PASSED [ 49%] tests/cli/test_update.py::test_update_top_packages_dry_run PASSED [ 49%] tests/cli/test_update.py::test_update_specified_packages PASSED [ 49%] tests/cli/test_update.py::test_update_specified_packages_eager_mode PASSED [ 49%] tests/cli/test_update.py::test_update_transitive PASSED [ 49%] tests/cli/test_update.py::test_update_transitive_nonexistant_dependencies PASSED [ 49%] tests/cli/test_update.py::test_update_transitive_non_transitive_dependencies PASSED [ 49%] tests/cli/test_update.py::test_update_specified_packages_eager_mode_config PASSED [ 50%] tests/cli/test_update.py::test_update_with_package_and_groups_argument PASSED [ 50%] tests/cli/test_update.py::test_update_with_prerelease_without_package_argument PASSED [ 50%] tests/cli/test_update.py::test_update_existing_package_with_prerelease PASSED [ 50%] tests/cli/test_update.py::test_update_package_with_extras PASSED [ 50%] tests/cli/test_update.py::test_update_groups_in_lockfile PASSED [ 50%] tests/cli/test_update.py::test_update_group_not_in_lockfile PASSED [ 50%] tests/cli/test_use.py::test_use_command PASSED [ 50%] tests/cli/test_use.py::test_use_python_by_version PASSED [ 50%] tests/cli/test_use.py::test_use_wrapper_python PASSED [ 51%] tests/cli/test_use.py::test_use_invalid_wrapper_python PASSED [ 51%] tests/cli/test_use.py::test_use_remember_last_selection PASSED [ 51%] tests/cli/test_use.py::test_use_venv_python PASSED [ 51%] tests/cli/test_utils.py::test_help_with_unknown_arguments PASSED [ 51%] tests/cli/test_venv.py::test_venv_create PASSED [ 51%] tests/cli/test_venv.py::test_venv_create_in_project PASSED [ 51%] tests/cli/test_venv.py::test_venv_create_other_location PASSED [ 51%] tests/cli/test_venv.py::test_venv_show_path PASSED [ 52%] tests/cli/test_venv.py::test_venv_list PASSED [ 52%] tests/cli/test_venv.py::test_venv_remove PASSED [ 52%] tests/cli/test_venv.py::test_venv_recreate PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate[virtualenv] PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate[venv] PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate_custom_prompt[virtualenv] PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate_custom_prompt[venv] PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate_project_without_python PASSED [ 52%] tests/cli/test_venv.py::test_venv_activate_error PASSED [ 53%] tests/cli/test_venv.py::test_venv_activate_no_shell[virtualenv] PASSED [ 53%] tests/cli/test_venv.py::test_venv_activate_no_shell[venv] PASSED [ 53%] tests/cli/test_venv.py::test_venv_auto_create[True] PASSED [ 53%] tests/cli/test_venv.py::test_venv_auto_create[False] PASSED [ 53%] tests/cli/test_venv.py::test_venv_purge PASSED [ 53%] tests/cli/test_venv.py::test_venv_purge_force PASSED [ 53%] tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-none-True] PASSED [ 53%] tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-0-False] PASSED [ 54%] tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-all-False] PASSED [ 54%] tests/cli/test_venv.py::test_venv_purge_interactive[venv-none-True] PASSED [ 54%] tests/cli/test_venv.py::test_venv_purge_interactive[venv-0-False] PASSED [ 54%] tests/cli/test_venv.py::test_venv_purge_interactive[venv-all-False] PASSED [ 54%] tests/cli/test_venv.py::test_virtualenv_backend_create[True] PASSED [ 54%] tests/cli/test_venv.py::test_virtualenv_backend_create[False] PASSED [ 54%] tests/cli/test_venv.py::test_venv_backend_create[True] PASSED [ 54%] tests/cli/test_venv.py::test_venv_backend_create[False] PASSED [ 54%] tests/cli/test_venv.py::test_conda_backend_create[True] PASSED [ 55%] tests/cli/test_venv.py::test_conda_backend_create[False] PASSED [ 55%] tests/models/test_backends.py::test_project_backend[pdm-backend] PASSED [ 55%] tests/models/test_backends.py::test_project_backend[setuptools] PASSED [ 55%] tests/models/test_backends.py::test_project_backend[flit-core] PASSED [ 55%] tests/models/test_backends.py::test_project_backend[hatchling] PASSED [ 55%] tests/models/test_backends.py::test_hatch_expand_variables PASSED [ 55%] tests/models/test_backends.py::test_pdm_backend_expand_variables PASSED [ 55%] tests/models/test_backends.py::test_get_relative_path[file:///foo/bar-None] PASSED [ 56%] tests/models/test_backends.py::test_get_relative_path[https://example.org-None] PASSED [ 56%] tests/models/test_backends.py::test_get_relative_path[file:///${PROJECT_ROOT}/demo%20package-demo package] PASSED [ 56%] tests/models/test_backends.py::test_get_relative_path[file:///${PROJECT_ROOT}/../demo-../demo] PASSED [ 56%] tests/models/test_backends.py::test_get_relative_path[{root:uri}/demo%20package-demo package] PASSED [ 56%] tests/models/test_candidates.py::test_parse_local_directory_metadata[False] PASSED [ 56%] tests/models/test_candidates.py::test_parse_local_directory_metadata[True] PASSED [ 56%] tests/models/test_candidates.py::test_parse_vcs_metadata[False] PASSED [ 56%] tests/models/test_candidates.py::test_parse_vcs_metadata[True] PASSED [ 56%] tests/models/test_candidates.py::test_parse_artifact_metadata[/build/python-pdm/src/pdm-2.13.2/tests/fixtures/artifacts/demo-0.0.1.tar.gz] PASSED [ 57%] tests/models/test_candidates.py::test_parse_artifact_metadata[/build/python-pdm/src/pdm-2.13.2/tests/fixtures/artifacts/demo-0.0.1-py2.py3-none-any.whl] PASSED [ 57%] tests/models/test_candidates.py::test_parse_metadata_with_extras PASSED [ 57%] tests/models/test_candidates.py::test_parse_remote_link_metadata PASSED [ 57%] tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1-py2.py3-none-any.whl] PASSED [ 57%] tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1.tar.gz] PASSED [ 57%] tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/projects/demo] PASSED [ 57%] tests/models/test_candidates.py::test_expand_project_root_in_url[-e ./tests/fixtures/projects/demo] PASSED [ 57%] tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo#egg=demo] PASSED [ 58%] tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo-#-with-hash#egg=demo] PASSED [ 58%] tests/models/test_candidates.py::test_parse_project_file_on_build_error PASSED [ 58%] tests/models/test_candidates.py::test_parse_project_file_on_build_error_with_extras PASSED [ 58%] tests/models/test_candidates.py::test_parse_project_file_on_build_error_no_dep PASSED [ 58%] tests/models/test_candidates.py::test_parse_poetry_project_metadata[False] PASSED [ 58%] tests/models/test_candidates.py::test_parse_poetry_project_metadata[True] PASSED [ 58%] tests/models/test_candidates.py::test_parse_flit_project_metadata[False] PASSED [ 58%] tests/models/test_candidates.py::test_parse_flit_project_metadata[True] PASSED [ 58%] tests/models/test_candidates.py::test_vcs_candidate_in_subdirectory[False] PASSED [ 59%] tests/models/test_candidates.py::test_vcs_candidate_in_subdirectory[True] PASSED [ 59%] tests/models/test_candidates.py::test_sdist_candidate_with_wheel_cache PASSED [ 59%] tests/models/test_candidates.py::test_cache_vcs_immutable_revision PASSED [ 59%] tests/models/test_candidates.py::test_cache_egg_info_sdist PASSED [ 59%] tests/models/test_candidates.py::test_invalidate_incompatible_wheel_link PASSED [ 59%] tests/models/test_candidates.py::test_legacy_pep345_tag_link PASSED [ 59%] tests/models/test_candidates.py::test_ignore_invalid_py_version PASSED [ 59%] tests/models/test_candidates.py::test_find_candidates_from_find_links PASSED [ 60%] tests/models/test_candidates.py::test_parse_metadata_from_pep621 PASSED [ 60%] tests/models/test_candidates.py::test_parse_metadata_with_dynamic_fields PASSED [ 60%] tests/models/test_candidates.py::test_get_metadata_for_non_existing_path PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_version > '3'-->=3.1] PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_version > '3.8'-->=3.9] PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_version != '3.8'--!=3.8.*] PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_version == '3.7'--==3.7.*] PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_version in '3.6 3.7'-->=3.6.0,<3.8.0] PASSED [ 60%] tests/models/test_marker.py::test_split_pyspec[python_full_version >= '3.6.0'-->=3.6] PASSED [ 61%] tests/models/test_marker.py::test_split_pyspec[python_full_version not in '3.8.3'--!=3.8.3] PASSED [ 61%] tests/models/test_marker.py::test_split_pyspec[python_version > '3.7' and os_name == 'nt'-os_name == "nt"->=3.8] PASSED [ 61%] tests/models/test_marker.py::test_split_pyspec[python_version > '3.7' or os_name == 'nt'-python_version > "3.7" or os_name == "nt"-] PASSED [ 61%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[requests-None] PASSED [ 61%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[requests<2.21.0,>=2.20.0-None] PASSED [ 61%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[requests==2.19.0; os_name == "nt"-None] PASSED [ 61%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[requests[security,tests]==2.8.*,>=2.8.1; python_version < "2.7"-None] PASSED [ 61%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[pip @ https://github.com/pypa/pip/archive/1.3.1.zip ; python_version > "3.4"-None] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[git+http://git.example.com/MyProject.git@master#egg=MyProject-MyProject @ git+http://git.example.com/MyProject.git@master] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[https://github.com/pypa/pip/archive/1.3.1.zip-None] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[/build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo-demo @ file:///build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[/build/python-pdm/src/pdm-2.13.2/tests/fixtures/artifacts/demo-0.0.1-py2.py3-none-any.whl-demo @ file:///build/python-pdm/src/pdm-2.13.2/tests/fixtures/artifacts/demo-0.0.1-py2.py3-none-any.whl] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[/build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo[security]-demo[security] @ file:///build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[requests; python_version=="3.7.*"-requests; python_version == "3.7.*"] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[git+git@github.com:pypa/pip.git#egg=pip-pip @ git+ssh://git@github.com/pypa/pip.git] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[foo >=4.*, <=5.*-foo<5.0,>=4.0] PASSED [ 62%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[foo (>=4.*, <=5.*)-foo<5.0,>=4.0] PASSED [ 63%] tests/models/test_requirements.py::test_convert_req_dict_to_req_line[foo>=3.0+g1234; python_version>='3.6'-foo>=3.0; python_version >= "3.6"] PASSED [ 63%] tests/models/test_requirements.py::test_illegal_requirement_line[requests; os_name=>'nt'-None] PASSED [ 63%] tests/models/test_requirements.py::test_illegal_requirement_line[django>=2<4-None] PASSED [ 63%] tests/models/test_requirements.py::test_not_supported_editable_requirement[requests >= 2.19.0] PASSED [ 63%] tests/models/test_requirements.py::test_not_supported_editable_requirement[https://github.com/pypa/pip/archive/1.3.1.zip] PASSED [ 63%] tests/models/test_requirements.py::test_filter_requirements_with_extras PASSED [ 63%] tests/models/test_setup_parsing.py::test_parse_setup_cfg[[metadata]\nname = foo\nversion = 0.1.0\n-result0] PASSED [ 63%] tests/models/test_setup_parsing.py::test_parse_setup_cfg[[metadata]\nname = foo\nversion = attr:foo.__version__\n-result1] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_cfg[[metadata]\nname = foo\nversion = 0.1.0\n\n[options]\npython_requires = >=3.6\ninstall_requires =\n click\n requests\n[options.extras_require]\ntui =\n rich\n-result2] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[from setuptools import setup\n\nsetup(name="foo", version="0.1.0")\n-result0] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[import setuptools\n\nsetuptools.setup(name="foo", version="0.1.0")\n-result1] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[from setuptools import setup\n\nkwargs = {"name": "foo", "version": "0.1.0"}\nsetup(**kwargs)\n-result2] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[from setuptools import setup\nname = 'foo'\nsetup(name=name, version="0.1.0")\n-result3] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[from setuptools import setup\n\nsetup(name="foo", version="0.1.0", install_requires=['click', 'requests'],\n python_requires='>=3.6', extras_require={'tui': ['rich']})\n-result4] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_setup_py[from pathlib import Path\nfrom setuptools import setup\n\nversion = Path('__version__.py').read_text().strip()\n\nsetup(name="foo", version=version)\n-result5] PASSED [ 64%] tests/models/test_setup_parsing.py::test_parse_pyproject_toml PASSED [ 64%] tests/models/test_specifiers.py::test_normalize_pyspec[>=3.6->=3.6] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[<3.8-<3.8] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[~=2.7.0-~=2.7.0] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[-] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[>=3.6,<3.8-<3.8,>=3.6] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[>3.6->3.6] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[<=3.7-<=3.7] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[>=3.4.*->=3.4.0] PASSED [ 65%] tests/models/test_specifiers.py::test_normalize_pyspec[>3.4.*->=3.4.0] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[<=3.4.*-<3.4.0] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[<3.4.*-<3.4.0] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[>=3.0+g1234->=3.0] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[<3.0+g1234-<3.0] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[<3.10.0a6-<3.10.0a6] PASSED [ 66%] tests/models/test_specifiers.py::test_normalize_pyspec[<3.10.2a3-<3.10.2a3] PASSED [ 66%] tests/models/test_specifiers.py::test_pyspec_and_op[>=3.6->=3.0->=3.6] PASSED [ 66%] tests/models/test_specifiers.py::test_pyspec_and_op[>=3.6-<3.8-<3.8,>=3.6] PASSED [ 66%] tests/models/test_specifiers.py::test_pyspec_and_op[->=3.6->=3.6] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_and_op[>=3.6-<3.2-] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_and_op[>=2.7,!=3.0.*-!=3.1.*-!=3.0.*,!=3.1.*,>=2.7] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_and_op[>=3.11.0a2-<3.11.0b->=3.11.0a2,<3.11.0b0] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_and_op[<3.11.0a2->3.11.0b-] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_or_op[>=3.6->=3.0->=3.0] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_or_op[->=3.6-] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_or_op[>=3.6-<3.7-] PASSED [ 67%] tests/models/test_specifiers.py::test_pyspec_or_op[>=3.6,<3.8->=3.4,<3.7-<3.8,>=3.4] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_or_op[~=2.7->=3.6-!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_or_op[<2.7.15->=3.0-!=2.7.15,!=2.7.16,!=2.7.17,!=2.7.18] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_or_op[>3.11.0a2->3.11.0b->3.11.0a2] PASSED [ 68%] tests/models/test_specifiers.py::test_impossible_pyspec PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[~=2.7->=2.7] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=3.6-] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=3.7->=3.6,<4.0] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=2.7,<3.0->=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*] PASSED [ 68%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=3.6->=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*->=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_is_subset_superset[>=3.11.*->=3.11.0rc] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_isnot_subset_superset[~=2.7->=2.6,<2.7.15] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_isnot_subset_superset[>=3.7->=3.6,<3.9] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_isnot_subset_superset[>=3.7,<3.6-==2.7] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_isnot_subset_superset[>=3.0,!=3.4.*->=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*] PASSED [ 69%] tests/models/test_specifiers.py::test_pyspec_isnot_subset_superset[>=3.11.0-<3.11.0a] PASSED [ 69%] tests/models/test_versions.py::test_unsupported_post_version PASSED [ 70%] tests/models/test_versions.py::test_support_prerelease_version PASSED [ 70%] tests/models/test_versions.py::test_normalize_non_standard_version PASSED [ 70%] tests/models/test_versions.py::test_version_comparison PASSED [ 70%] tests/models/test_versions.py::test_version_is_wildcard PASSED [ 70%] tests/models/test_versions.py::test_version_is_py2 PASSED [ 70%] tests/models/test_versions.py::test_version_complete[3.9-args0-3.9.0] PASSED [ 70%] tests/models/test_versions.py::test_version_complete[3.9-args1-3.9.*] PASSED [ 70%] tests/models/test_versions.py::test_version_complete[3-args2-3.0] PASSED [ 70%] tests/models/test_versions.py::test_version_bump[3.8.0--1-3.8.1] PASSED [ 71%] tests/models/test_versions.py::test_version_bump[3.8--1-3.9.0] PASSED [ 71%] tests/models/test_versions.py::test_version_bump[3-0-4.0.0] PASSED [ 71%] tests/models/test_versions.py::test_version_bump[3.8.1-1-3.9.0] PASSED [ 71%] tests/models/test_versions.py::test_version_startswith[3.8.0-3.8-True] PASSED [ 71%] tests/models/test_versions.py::test_version_startswith[3.8.*-3.8-True] PASSED [ 71%] tests/models/test_versions.py::test_version_startswith[3.8.1-3.7-False] PASSED [ 71%] tests/models/test_versions.py::test_version_startswith[3.8-3.8.2-False] PASSED [ 71%] tests/models/test_versions.py::test_version_getitem PASSED [ 72%] tests/models/test_versions.py::test_version_setitem PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_named_requirement PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_exclude PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_requires_python PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_allow_prereleases PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_with_extras PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_with_extras_and_excludes PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_local_artifacts[sdist] PASSED [ 72%] tests/resolver/test_resolve.py::test_resolve_local_artifacts[wheel] PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_vcs_and_local_requirements[False-/build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo] PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_vcs_and_local_requirements[False-git+https://github.com/test-root/demo.git#egg=demo] PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_vcs_and_local_requirements[True-/build/python-pdm/src/pdm-2.13.2/tests/fixtures/projects/demo] PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_vcs_and_local_requirements[True-git+https://github.com/test-root/demo.git#egg=demo] PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_vcs_without_explicit_name PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_local_and_named_requirement PASSED [ 73%] tests/resolver/test_resolve.py::test_resolving_auto_avoid_conflicts PASSED [ 73%] tests/resolver/test_resolve.py::test_resolve_conflicting_dependencies PASSED [ 74%] tests/resolver/test_resolve.py::test_resolve_conflicting_dependencies_with_overrides[2.1] PASSED [ 74%] tests/resolver/test_resolve.py::test_resolve_conflicting_dependencies_with_overrides[>=1.8] PASSED [ 74%] tests/resolver/test_resolve.py::test_resolve_conflicting_dependencies_with_overrides[==2.1] PASSED [ 74%] tests/resolver/test_resolve.py::test_resolve_no_available_versions PASSED [ 74%] tests/resolver/test_resolve.py::test_exclude_incompatible_requirements PASSED [ 74%] tests/resolver/test_resolve.py::test_union_markers_from_different_parents PASSED [ 74%] tests/resolver/test_resolve.py::test_requirements_from_different_groups PASSED [ 74%] tests/resolver/test_resolve.py::test_resolve_two_extras_from_the_same_package PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_package_with_dummy_upbound PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_dependency_with_extra_marker PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_circular_dependencies PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_candidates_to_install PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_prefer_requirement_with_prereleases PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_with_python_marker PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_file_req_with_prerelease PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_extra_requirements_no_break_constraints PASSED [ 75%] tests/resolver/test_resolve.py::test_resolve_extra_and_underlying_to_the_same_version PASSED [ 76%] tests/resolver/test_resolve.py::test_resolve_skip_candidate_with_invalid_metadata PASSED [ 76%] tests/resolver/test_resolve.py::test_resolve_direct_minimal_versions PASSED [ 76%] tests/resolver/test_resolve.py::test_resolve_record_markers PASSED [ 76%] tests/test_formats.py::test_convert_pipfile PASSED [ 76%] tests/test_formats.py::test_convert_requirements_file[True] PASSED [ 76%] tests/test_formats.py::test_convert_requirements_file[False] PASSED [ 76%] tests/test_formats.py::test_convert_requirements_file_without_name PASSED [ 76%] tests/test_formats.py::test_convert_poetry PASSED [ 77%] tests/test_formats.py::test_convert_poetry_12 PASSED [ 77%] tests/test_formats.py::test_convert_flit PASSED [ 77%] tests/test_formats.py::test_convert_error_preserve_metadata PASSED [ 77%] tests/test_formats.py::test_import_requirements_with_group PASSED [ 77%] tests/test_formats.py::test_export_requirements_with_self PASSED [ 77%] tests/test_formats.py::test_export_requirements_with_editable_self PASSED [ 77%] tests/test_formats.py::test_keep_env_vars_in_source PASSED [ 77%] tests/test_formats.py::test_expand_env_vars_in_source PASSED [ 77%] tests/test_formats.py::test_export_find_links PASSED [ 78%] tests/test_formats.py::test_export_replace_project_root PASSED [ 78%] tests/test_formats.py::test_convert_setup_py_project PASSED [ 78%] tests/test_installer.py::test_install_wheel_with_inconsistent_dist_info PASSED [ 78%] tests/test_installer.py::test_install_with_file_existing PASSED [ 78%] tests/test_installer.py::test_uninstall_commit_rollback PASSED [ 78%] tests/test_installer.py::test_rollback_after_commit PASSED [ 78%] tests/test_installer.py::test_uninstall_with_console_scripts[False] PASSED [ 78%] tests/test_installer.py::test_uninstall_with_console_scripts[True] PASSED [ 79%] tests/test_installer.py::test_install_wheel_with_cache[symlink] PASSED [ 79%] tests/test_installer.py::test_install_wheel_with_cache[hardlink] PASSED [ 79%] tests/test_installer.py::test_install_wheel_with_cache[None] PASSED [ 79%] tests/test_installer.py::test_url_requirement_is_not_cached PASSED [ 79%] tests/test_installer.py::test_install_wheel_with_data_scripts[False] PASSED [ 79%] tests/test_installer.py::test_install_wheel_with_data_scripts[True] PASSED [ 79%] tests/test_installer.py::test_compress_file_list_for_rename PASSED [ 79%] tests/test_integration.py::test_basic_integration[3.11] PASSED [ 79%] tests/test_integration.py::test_actual_list_freeze PASSED [ 80%] tests/test_plugin.py::test_plugin_new_command PASSED [ 80%] tests/test_plugin.py::test_plugin_replace_command PASSED [ 80%] tests/test_plugin.py::test_load_multiple_plugings PASSED [ 80%] tests/test_plugin.py::test_old_entry_point_compatibility PASSED [ 80%] tests/test_plugin.py::test_project_plugin_library PASSED [ 80%] tests/test_project.py::test_project_python_with_pyenv_support PASSED [ 80%] tests/test_project.py::test_project_config_items PASSED [ 80%] tests/test_project.py::test_project_config_set_invalid_key PASSED [ 81%] tests/test_project.py::test_project_sources_overriding_pypi PASSED [ 81%] tests/test_project.py::test_project_sources_env_var_expansion PASSED [ 81%] tests/test_project.py::test_global_project PASSED [ 81%] tests/test_project.py::test_auto_global_project PASSED [ 81%] tests/test_project.py::test_project_use_venv PASSED [ 81%] tests/test_project.py::test_project_packages_path PASSED [ 81%] tests/test_project.py::test_project_auto_detect_venv PASSED [ 81%] tests/test_project.py::test_ignore_saved_python PASSED [ 81%] tests/test_project.py::test_select_dependencies PASSED [ 82%] tests/test_project.py::test_set_non_exist_python_path PASSED [ 82%] tests/test_project.py::test_create_venv_first_time[virtualenv] PASSED [ 82%] tests/test_project.py::test_create_venv_first_time[venv] PASSED [ 82%] tests/test_project.py::test_create_venv_in_project[virtualenv-True] PASSED [ 82%] tests/test_project.py::test_create_venv_in_project[virtualenv-False] PASSED [ 82%] tests/test_project.py::test_create_venv_in_project[venv-True] PASSED [ 82%] tests/test_project.py::test_create_venv_in_project[venv-False] PASSED [ 82%] tests/test_project.py::test_find_interpreters_from_venv[virtualenv] PASSED [ 83%] tests/test_project.py::test_find_interpreters_from_venv[venv] PASSED [ 83%] tests/test_project.py::test_find_interpreters_without_duplicate_relative_paths PASSED [ 83%] tests/test_project.py::test_iter_project_venvs PASSED [ 83%] tests/test_project.py::test_load_extra_sources PASSED [ 83%] tests/test_project.py::test_no_index_raise_error PASSED [ 83%] tests/test_project.py::test_configured_source_overwriting PASSED [ 83%] tests/test_project.py::test_invoke_pdm_adding_configured_args PASSED [ 83%] tests/test_project.py::test_quiet_mode[True-extra_args0] PASSED [ 83%] tests/test_project.py::test_quiet_mode[False-extra_args1] PASSED [ 84%] tests/test_project.py::test_ignore_package_warning[foo-True] PASSED [ 84%] tests/test_project.py::test_ignore_package_warning[bar-False] PASSED [ 84%] tests/test_project.py::test_ignore_package_warning[*-True] PASSED [ 84%] tests/test_project.py::test_ignore_package_warning[f?o-True] PASSED [ 84%] tests/test_project.py::test_filter_sources_with_config PASSED [ 84%] tests/test_project.py::test_preserve_log_file PASSED [ 84%] tests/test_signals.py::test_post_init_signal PASSED [ 84%] tests/test_signals.py::test_post_lock_and_install_signals PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given0-test_dirname1] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given1-test_dirname2] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given2-test_dirname3] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given3-test_dirname4] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given4-test_dirname5] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given5-test_dirname6] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given6-test_dirname7] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given7-test_dirname8] PASSED [ 85%] tests/test_utils.py::test_create_tracked_tempdir[given8-test_dirname9] PASSED [ 86%] tests/test_utils.py::test_get_trusted_hosts[repository_configs0] PASSED [ 86%] tests/test_utils.py::test_url_without_fragments[scheme://netloc-scheme://netloc] PASSED [ 86%] tests/test_utils.py::test_url_without_fragments[scheme://netloc/path-scheme://netloc/path] PASSED [ 86%] tests/test_utils.py::test_url_without_fragments[scheme://netloc/path/#-scheme://netloc/path/] PASSED [ 86%] tests/test_utils.py::test_url_without_fragments[scheme://netloc/path#fragment-scheme://netloc/path] PASSED [ 86%] tests/test_utils.py::test_url_without_fragments[scheme://netloc/path;parameters?query#fragment-scheme://netloc/path;parameters?query] PASSED [ 86%] tests/test_utils.py::test_join_list_with[given0-expected0] PASSED [ 86%] tests/test_utils.py::test_join_list_with[given1-expected1] PASSED [ 87%] tests/test_utils.py::test_join_list_with[given2-expected2] PASSED [ 87%] tests/test_utils.py::TestGetUserEmailFromGit::test_no_git PASSED [ 87%] tests/test_utils.py::TestGetUserEmailFromGit::test_no_git_username_and_email PASSED [ 87%] tests/test_utils.py::TestGetUserEmailFromGit::test_no_git_email PASSED [ 87%] tests/test_utils.py::TestGetUserEmailFromGit::test_no_git_username PASSED [ 87%] tests/test_utils.py::TestGetUserEmailFromGit::test_git_username_and_email PASSED [ 87%] tests/test_utils.py::test_add_ssh_scheme_to_git_uri[git@github.com/pdm-project/pdm-ssh://git@github.com/pdm-project/pdm] PASSED [ 87%] tests/test_utils.py::test_add_ssh_scheme_to_git_uri[ssh://git@github.com/pdm-project/pdm-ssh://git@github.com/pdm-project/pdm] PASSED [ 87%] tests/test_utils.py::test_add_ssh_scheme_to_git_uri[git+ssh://git@github.com/pdm-project/pdm-git+ssh://git@github.com/pdm-project/pdm] PASSED [ 88%] tests/test_utils.py::test_add_ssh_scheme_to_git_uri[https://git@github.com/pdm-project/pdm-https://git@github.com/pdm-project/pdm] PASSED [ 88%] tests/test_utils.py::test_add_ssh_scheme_to_git_uri[file:///my/local/pdm-project/pdm-file:///my/local/pdm-project/pdm] PASSED [ 88%] tests/test_utils.py::TestUrlToPath::test_non_file_url PASSED [ 88%] tests/test_utils.py::TestUrlToPath::test_non_windows_non_local_file_url PASSED [ 88%] tests/test_utils.py::TestUrlToPath::test_non_windows_localhost_local_file_url PASSED [ 88%] tests/test_utils.py::TestUrlToPath::test_windows_localhost_local_file_url SKIPPED [ 88%] tests/test_utils.py::test_path_to_url[/path/to/my/pdm-file:///path/to/my/pdm] PASSED [ 88%] tests/test_utils.py::test_path_to_url[/abs/path/to/my/pdm-file:///abs/path/to/my/pdm] PASSED [ 89%] tests/test_utils.py::test_path_to_url[/path/to/my/pdm/pyproject.toml-file:///path/to/my/pdm/pyproject.toml] PASSED [ 89%] tests/test_utils.py::test_path_to_url[../path/to/my/pdm/pyproject.toml-file:///abs/path/to/my/pdm/pyproject.toml] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[test-test] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[-] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[${FOO}-hello] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[$FOO-$FOO] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[${BAR}-${BAR}] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[%FOO%-%FOO%] PASSED [ 89%] tests/test_utils.py::test_expand_env_vars[${FOO}_${FOO}-hello_hello] PASSED [ 90%] tests/test_utils.py::test_expand_env_vars_in_auth[https://example.org/path?arg=1-https://example.org/path?arg=1] PASSED [ 90%] tests/test_utils.py::test_expand_env_vars_in_auth[https://${FOO}@example.org/path?arg=1-https://hello@example.org/path?arg=1] PASSED [ 90%] tests/test_utils.py::test_expand_env_vars_in_auth[https://${FOO}:${BAR}@example.org/path?arg=1-https://hello:wo%3Arld@example.org/path?arg=1] PASSED [ 90%] tests/test_utils.py::test_expand_env_vars_in_auth[https://${FOOBAR}@example.org/path?arg=1-https://%24%7BFOOBAR%7D@example.org/path?arg=1] PASSED [ 90%] tests/test_utils.py::test_path_replace[posix-given0-/a/b/repl/c/repl/d/e] PASSED [ 90%] tests/test_utils.py::test_path_replace[posix-given1-/path/to/new/pdm] PASSED [ 90%] tests/test_utils.py::test_path_replace[posix-given2-repl/a/math/b/repl/c] PASSED [ 90%] tests/test_utils.py::test_path_replace[posix-given3-/some/path] PASSED [ 91%] tests/test_utils.py::test_path_replace[posix-given4-] PASSED [ 91%] tests/test_utils.py::test_path_replace[nt-given5-C:/Path/tO/new/pdm] PASSED [ 91%] tests/test_utils.py::test_path_replace[nt-given6-C:/Path/tO/new/pdm] PASSED [ 91%] tests/test_utils.py::test_path_replace[nt-given7-C:/no/matching/path] PASSED [ 91%] tests/test_utils.py::test_is_path_relative_to[given0-True] PASSED [ 91%] tests/test_utils.py::test_is_path_relative_to[given1-True] PASSED [ 91%] tests/test_utils.py::test_is_path_relative_to[given2-True] PASSED [ 91%] tests/test_utils.py::test_is_path_relative_to[given3-False] PASSED [ 91%] tests/test_utils.py::test_is_path_relative_to[given4-False] PASSED [ 92%] tests/test_utils.py::test_is_path_relative_to[given5-False] PASSED [ 92%] tests/test_utils.py::test_is_path_relative_to[given6-True] PASSED [ 92%] tests/test_utils.py::test_is_path_relative_to[given7-True] PASSED [ 92%] tests/test_utils.py::TestGetVenvLikePrefix::test_conda_env_with_conda_meta_in_bin[py312_compatible_paths0] PASSED [ 92%] tests/test_utils.py::TestGetVenvLikePrefix::test_py_env_with_pyvenv_cfg[py312_compatible_paths0] PASSED [ 92%] tests/test_utils.py::TestGetVenvLikePrefix::test_conda_env_with_conda_meta[py312_compatible_paths0] PASSED [ 92%] tests/test_utils.py::TestGetVenvLikePrefix::test_virtual_env PASSED [ 92%] tests/test_utils.py::TestGetVenvLikePrefix::test_conda_virtual_env PASSED [ 93%] tests/test_utils.py::TestGetVenvLikePrefix::test_no_virtual_env PASSED [ 93%] tests/test_utils.py::test_find_python_in_path PASSED [ 93%] tests/test_utils.py::test_get_rev_from_url[scheme://netloc/path@rev#fragment-rev] PASSED [ 93%] tests/test_utils.py::test_get_rev_from_url[scheme://netloc/path@rev-rev] PASSED [ 93%] tests/test_utils.py::test_get_rev_from_url[scheme://netloc/path-] PASSED [ 93%] tests/test_utils.py::test_get_rev_from_url[scheme://netloc/path#fragment-] PASSED [ 93%] tests/test_utils.py::test_normalize_name[given0-ProjectName] PASSED [ 93%] tests/test_utils.py::test_normalize_name[given1-projectname] PASSED [ 93%] tests/test_utils.py::test_normalize_name[given2-1Project-Name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given3-1project-name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given4-Project-Name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given5-project-name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given6-Project123Name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given7-project123name] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given8-123-ProjectName] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given9-123-projectname] PASSED [ 94%] tests/test_utils.py::test_normalize_name[given10-123-Project-Name] PASSED [ 95%] tests/test_utils.py::test_normalize_name[given11-123-project-name] PASSED [ 95%] tests/test_utils.py::test_normalize_name[given12--123Project-Name4] PASSED [ 95%] tests/test_utils.py::test_normalize_name[given13--123project-name4] PASSED [ 95%] tests/test_utils.py::TestIsEditable::test_is_egg_link PASSED [ 95%] tests/test_utils.py::TestIsEditable::test_not_direct_url_distribution PASSED [ 95%] tests/test_utils.py::TestIsEditable::test_direct_url_distribution PASSED [ 95%] tests/test_utils.py::test_merge_dictionary PASSED [ 95%] tests/test_utils.py::test_dependency_group_selection[args0-golden0] PASSED [ 95%] tests/test_utils.py::test_dependency_group_selection[args1-golden1] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args2-golden2] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args3-golden3] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args4-golden4] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args5-golden5] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args6-golden6] PASSED [ 96%] tests/test_utils.py::test_dependency_group_selection[args7-golden7] PASSED [ 96%] tests/test_utils.py::test_exclude_optional_groups_from_all[args0-golden0] PASSED [ 96%] tests/test_utils.py::test_exclude_optional_groups_from_all[args1-golden1] PASSED [ 97%] tests/test_utils.py::test_exclude_optional_groups_from_all[args2-golden2] PASSED [ 97%] tests/test_utils.py::test_prod_should_not_be_with_dev PASSED [ 97%] tests/test_utils.py::test_deprecation_warning PASSED [ 97%] tests/test_utils.py::test_comparable_version PASSED [ 97%] tests/test_utils.py::test_validate_project_name[foO] PASSED [ 97%] tests/test_utils.py::test_validate_project_name[f] PASSED [ 97%] tests/test_utils.py::test_validate_project_name[3d] PASSED [ 97%] tests/test_utils.py::test_validate_project_name[f3] PASSED [ 97%] tests/test_utils.py::test_validate_project_name[333] PASSED [ 98%] tests/test_utils.py::test_validate_project_name[foo.bar] PASSED [ 98%] tests/test_utils.py::test_validate_project_name[foo-bar] PASSED [ 98%] tests/test_utils.py::test_validate_project_name[foo_bar] PASSED [ 98%] tests/test_utils.py::test_validate_project_name[foo-_.bar] PASSED [ 98%] tests/test_utils.py::test_invalidate_project_name[] PASSED [ 98%] tests/test_utils.py::test_invalidate_project_name[-] PASSED [ 98%] tests/test_utils.py::test_invalidate_project_name[.foo] PASSED [ 98%] tests/test_utils.py::test_invalidate_project_name[foo_] PASSED [ 99%] tests/test_utils.py::test_invalidate_project_name[-3] PASSED [ 99%] tests/test_utils.py::test_invalidate_project_name[foo$bar] PASSED [ 99%] tests/test_utils.py::test_invalidate_project_name[a.3-] PASSED [ 99%] tests/test_utils.py::test_sanitize_project_name[foo-foo] PASSED [ 99%] tests/test_utils.py::test_sanitize_project_name[Foo.Bar-Foo.Bar] PASSED [ 99%] tests/test_utils.py::test_sanitize_project_name[-foo-foo] PASSED [ 99%] tests/test_utils.py::test_sanitize_project_name[Foo%$Bar-Foo-Bar] PASSED [ 99%] tests/test_utils.py::test_sanitize_project_name[Foo$-Foo] PASSED [100%] =================================== FAILURES =================================== _____________________________ test_install_python ______________________________ project = pdm = .caller at 0x3fb84d2c00> mock_install = def test_install_python(project, pdm, mock_install): root = Path(project.config["python.install_root"]) > pdm(["py", "install", "cpython@3.10.8"], obj=project, strict=True) E RuntimeError: Call command ['py', 'install', 'cpython@3.10.8'] failed(1): [ValueError]: Could not find a version matching version='3.10.8', implementation=cpython E WARNING: Add '-v' to see the detailed traceback tests/cli/test_python.py:51: RuntimeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_use_auto_install_missing _________________________ project = pdm = .caller at 0x3fb8861080> mock_install = mocker = def test_use_auto_install_missing(project, pdm, mock_install, mocker): root = Path(project.config["python.install_root"]) mocker.patch("pdm.project.Project.find_interpreters", return_value=[]) > pdm(["use", "3.10.8"], obj=project, strict=True) E RuntimeError: Call command ['use', '3.10.8'] failed(1): ERROR: Failed to install Python 3.10.8: Could not find a version matching version='3.10.8', implementation=cpython E [NoPythonVersion]: No Python interpreter matching requires-python=">=3.7" is found. tests/cli/test_python.py:71: RuntimeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_use_auto_install_pick_latest _______________________ project = pdm = .caller at 0x3fb92837e0> mock_install = mocker = def test_use_auto_install_pick_latest(project, pdm, mock_install, mocker): root = Path(project.config["python.install_root"]) mocker.patch("pdm.project.Project.find_interpreters", return_value=[]) > pdm(["use", "-v"], obj=project, strict=True) E RuntimeError: Call command ['use', '-v'] failed(1): ERROR: Failed to install Python cpython@3.12.2: Could not find a version matching version='3.12.2', implementation=cpython E [NoPythonVersion]: No Python interpreter matching requires-python=">=3.7" is found. tests/cli/test_python.py:80: RuntimeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. =============================== warnings summary =============================== tests/test_integration.py:25 /build/python-pdm/src/pdm-2.13.2/tests/test_integration.py:25: PytestUnknownMarkWarning: Unknown pytest.mark.flaky - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.flaky(reruns=3) tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@5.0.4 because it requires Python>=3.10 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@5.0.4, narrow down the `requires-python` range to include this version. For example, ">=3.10" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@5.0.3 because it requires Python>=3.10 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@5.0.3, narrow down the `requires-python` range to include this version. For example, ">=3.10" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@5.0.2 because it requires Python>=3.10 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@5.0.2, narrow down the `requires-python` range to include this version. For example, ">=3.10" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@5.0.1 because it requires Python>=3.10 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@5.0.1, narrow down the `requires-python` range to include this version. For example, ">=3.10" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@5.0 because it requires Python>=3.10 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@5.0, narrow down the `requires-python` range to include this version. For example, ">=3.10" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.11 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.11, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.10 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.10, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.9 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.9, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.8 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.8, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.7 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.7, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.6 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.6, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.5 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.5, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.4 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.4, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.3 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.3, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.2 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.2, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2.1 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2.1, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.2 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.2, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.13 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.13, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.12 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.12, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.11 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.11, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.10 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.10, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.9 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.9, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.8 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.8, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.7 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.7, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.6 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.6, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.5 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.5, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.4 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.4, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.3 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.3, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.2 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.2, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1.1 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1.1, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.1 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.1, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.10 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.10, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.9 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.9, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.8 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.8, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.7 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.7, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.6 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.6, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.5 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.5, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.4 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.4, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.3 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.3, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.2 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.2, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0.1 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0.1, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping django@4.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of django that supports Python>=3.7 will be used. If you want to install django@4.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping asgiref@3.8.1 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of asgiref that supports Python>=3.7 will be used. If you want to install asgiref@3.8.1, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping asgiref@3.8.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of asgiref that supports Python>=3.7 will be used. If you want to install asgiref@3.8.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping typing-extensions@4.11.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of typing-extensions that supports Python>=3.7 will be used. If you want to install typing-extensions@4.11.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping typing-extensions@4.10.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of typing-extensions that supports Python>=3.7 will be used. If you want to install typing-extensions@4.10.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping typing-extensions@4.9.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of typing-extensions that supports Python>=3.7 will be used. If you want to install typing-extensions@4.9.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( tests/test_integration.py::test_basic_integration[3.11] /build/python-pdm/src/pdm-2.13.2/test_dir/usr/lib/python3.11/site-packages/pdm/resolver/providers.py:196: PackageWarning: Skipping typing-extensions@4.8.0 because it requires Python>=3.8 but the project claims to work with Python>=3.7. Instead, another version of typing-extensions that supports Python>=3.7 will be used. If you want to install typing-extensions@4.8.0, narrow down the `requires-python` range to include this version. For example, ">=3.8" should work. return self.repository.find_candidates( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] tests/test_utils.py:180: Windows test FAILED tests/cli/test_python.py::test_install_python - RuntimeError: Call command ['py', 'install', 'cpython@3.10.8'] failed(1): [ValueError]: Could not find a version matching version='3.10.8', implementation=cpython WARNING: Add '-v' to see the detailed traceback FAILED tests/cli/test_python.py::test_use_auto_install_missing - RuntimeError: Call command ['use', '3.10.8'] failed(1): ERROR: Failed to install Python 3.10.8: Could not find a version matching version='3.10.8', implementation=cpython [NoPythonVersion]: No Python interpreter matching requires-python=">=3.7" is found. FAILED tests/cli/test_python.py::test_use_auto_install_pick_latest - RuntimeError: Call command ['use', '-v'] failed(1): ERROR: Failed to install Python cpython@3.12.2: Could not find a version matching version='3.12.2', implementation=cpython [NoPythonVersion]: No Python interpreter matching requires-python=">=3.7" is found. = 3 failed, 844 passed, 1 skipped, 1 deselected, 49 warnings in 621.37s (0:10:21) = ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/root0/build [?25h[?25hreceiving incremental file list python-pdm-2.13.2-1-riscv64-build.log python-pdm-2.13.2-1-riscv64-check.log sent 62 bytes received 13,447 bytes 27,018.00 bytes/sec total size is 116,791 speedup is 8.65