==> Building on scovillain ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-hatch ./ .SRCINFO 1,183 100% 0.00kB/s 0:00:00 1,183 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) PKGBUILD 9,951 100% 9.49MB/s 0:00:00 9,951 100% 9.49MB/s 0:00:00 (xfr#2, to-chk=1/4) python-hatch-1.9.3-1.log 369 100% 360.35kB/s 0:00:00 369 100% 360.35kB/s 0:00:00 (xfr#3, to-chk=0/4) sent 3,014 bytes received 120 bytes 1,253.60 bytes/sec total size is 11,331 speedup is 3.62 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l felix34 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] -> [felix34]...done ==> Making package: python-hatch 1.9.3-1 (Mon Apr 8 17:51:50 2024) ==> Retrieving sources...  -> Downloading hatch-v1.9.3.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 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 100 750k 0 750k 0 0 359k 0 --:--:-- 0:00:02 --:--:-- 1025k ==> Validating source files with sha256sums... hatch-v1.9.3.tar.gz ... Passed ==> Validating source files with b2sums... hatch-v1.9.3.tar.gz ... Passed ==> Making package: python-hatch 1.9.3-1 (Mon Apr 8 17:52:19 2024) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (46) 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-certifi 2024.02.02-1 0.02 MiB extra/python-cffi 1.16.0-1 1.41 MiB extra/python-colorama 0.4.6-2 0.27 MiB extra/python-cryptography 42.0.5-1 4.56 MiB extra/python-distlib 0.3.8-1 1.39 MiB extra/python-distro 1.9.0-1 0.20 MiB extra/python-editables 0.5-1 0.03 MiB extra/python-filelock 3.13.3-1 0.09 MiB extra/python-h11 0.14.0-2 0.65 MiB extra/python-httpcore 1.0.2-2 0.96 MiB extra/python-idna 3.6-1 0.71 MiB extra/python-importlib-metadata 5.1.0-1 0.20 MiB extra/python-jaraco.classes 3.3.1-1 0.05 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-jeepney 0.8.0-2 0.57 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-more-itertools 10.2.0-1 0.64 MiB extra/python-pathspec 0.12.1-1 0.24 MiB extra/python-pluggy 1.4.0-2 0.21 MiB extra/python-ptyprocess 0.7.0-5 0.08 MiB extra/python-pycparser 2.22-1 1.78 MiB extra/python-pygments 2.17.2-1 13.94 MiB extra/python-secretstorage 3.3.3-3 0.12 MiB extra/python-sniffio 1.3.1-1 0.04 MiB extra/python-trove-classifiers 2024.3.25-1 0.12 MiB extra/python-uc-micro-py 1.0.3-1 0.02 MiB extra/python-zipp 3.17.0-1 0.06 MiB core/python 3.11.8-1 107.82 MiB extra/python-click 8.1.7-1 1.24 MiB extra/python-hatchling 1.21.1-2 1.02 MiB extra/python-httpx 0.26.0-1 1.06 MiB extra/python-hyperlink 21.0.0-5 0.65 MiB extra/python-keyring 25.0.0-1 0.33 MiB extra/python-packaging 23.2-1 0.53 MiB extra/python-pexpect 4.9.0-1 0.41 MiB extra/python-platformdirs 4.2.0-1 0.24 MiB extra/python-rich 13.7.1-1 3.30 MiB 0.52 MiB extra/python-shellingham 1.5.4-1 0.06 MiB extra/python-tomli-w 1.0.0-6 0.04 MiB extra/python-tomlkit 0.12.4-1 0.61 MiB extra/python-userpath 1.9.2-1 0.09 MiB 0.02 MiB extra/python-virtualenv 20.25.0-1 4.69 MiB Total Download Size: 0.54 MiB Total Installed Size: 152.67 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-rich-13.7.1-1-any downloading... python-userpath-1.9.2-1-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-click... installing python-packaging... installing python-pathspec... installing python-pluggy... installing python-editables... installing python-trove-classifiers... installing python-hatchling... installing python-certifi... 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 [pending] python-trio: for trio backend python-sniffio: for async support [pending] 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-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-hyperlink... installing python-more-itertools... installing python-jaraco.classes... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext installing python-cryptography... installing python-jeepney... installing python-secretstorage... installing python-zipp... installing python-importlib-metadata... installing python-jaraco.functools... installing python-jaraco.context... installing python-keyring... Optional dependencies for python-keyring python-keyrings-alt: Alternative backends python-dbus: kwallet backend installing python-ptyprocess... installing python-pexpect... installing python-platformdirs... 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-tomli-w... installing python-tomlkit... installing python-distro... installing python-userpath... installing python-distlib... installing python-filelock... installing python-virtualenv... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (28) New Version Net Change core/libedit 20230828_3.1-1 0.24 MiB extra/llvm-libs 17.0.6-2 117.02 MiB extra/perl-error 0.17029-5 0.04 MiB extra/perl-mailtools 2.21-7 0.10 MiB extra/perl-timedate 2.33-5 0.08 MiB 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.text 3.12.0-1.1 0.09 MiB extra/python-ordered-set 4.1.0-4 0.07 MiB extra/python-pyproject-hooks 1.0.0-5 0.09 MiB extra/python-setuptools 1:69.0.3-4 4.68 MiB extra/python-setuptools-scm 8.0.4-1 0.38 MiB extra/python-tomli 2.0.1-3 0.11 MiB extra/python-typeguard 4.2.1-1 0.42 MiB extra/python-typing_extensions 4.10.0-1 0.39 MiB extra/python-validate-pyproject 0.13-1 0.29 MiB extra/git 2.44.0-1 25.03 MiB core/libxcrypt-compat 4.4.36-1 0.17 MiB extra/python-build 1.1.1-2 0.69 MiB extra/python-hatch-vcs 0.4.0-1 0.04 MiB extra/python-installer 0.7.0-4 0.19 MiB extra/python-pytest 1:8.1.1-1 4.18 MiB extra/python-pytest-mock 3.13.0-1 0.10 MiB extra/python-wheel 0.43.0-1 0.28 MiB extra/python-zstandard 0.22.0-1 1.18 MiB extra/rust 1:1.77.1-2 213.79 MiB Total Installed Size: 370.45 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-virtualenv: Use virtualenv for build isolation [installed] installing python-autocommand... installing python-typing_extensions... installing python-typeguard... installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-tomli... installing python-fastjsonschema... installing python-validate-pyproject... installing python-setuptools... installing python-setuptools-scm... installing python-hatch-vcs... installing python-installer... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures [installed] python-xdg: for wheel.signatures installing perl-error... installing perl-timedate... installing perl-mailtools... installing git... Optional dependencies for git tk: gitk and git gui openssh: ssh transport and crypto perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] installing libxcrypt-compat... installing python-iniconfig... installing python-pytest... installing python-pytest-mock... installing python-zstandard... Optional dependencies for python-zstandard python-cffi [installed] installing libedit... installing llvm-libs... installing rust... Optional dependencies for rust gdb: rust-gdb script lldb: rust-lldb script :: Running post-transaction hooks... (1/1) Warn about old perl modules [?25h==> Retrieving sources...  -> Found hatch-v1.9.3.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting hatch-v1.9.3.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built hatch-1.9.3-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-hatch/src/hatch-hatch-v1.9.3 configfile: pyproject.toml plugins: typeguard-4.2.1, anyio-4.3.0, mock-3.13.0 collecting ... collected 1910 items / 93 deselected / 1817 selected tests/backend/builders/hooks/test_custom.py::test_no_path PASSED [ 0%] tests/backend/builders/hooks/test_custom.py::test_path_not_string PASSED [ 0%] tests/backend/builders/hooks/test_custom.py::test_nonexistent PASSED [ 0%] tests/backend/builders/hooks/test_custom.py::test_default PASSED [ 0%] tests/backend/builders/hooks/test_custom.py::test_explicit_path PASSED [ 0%] tests/backend/builders/hooks/test_custom.py::test_no_subclass PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_correct PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_missing PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_not_string PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigTemplate::test_correct PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigTemplate::test_not_string PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigPattern::test_correct PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestConfigPattern::test_not_string PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestTemplate::test_default PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestTemplate::test_create_necessary_directories PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestTemplate::test_custom PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestPattern::test_default PASSED [ 0%] tests/backend/builders/hooks/test_version.py::TestPattern::test_custom PASSED [ 0%] tests/backend/builders/plugin/test_interface.py::TestClean::test_default PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestPluginManager::test_default PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestPluginManager::test_reuse PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestRawConfig::test_default PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestRawConfig::test_reuse PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestRawConfig::test_read PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_base PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_core PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_hatch PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_build_config PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_build_config_not_table PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_target_config PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_target_config_not_table PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestProjectID::test_normalization PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_unknown_version PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_invalid_metadata PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestHookConfig::test_unknown PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_infinite_loop_prevention PASSED [ 1%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_only_include PASSED [ 2%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_no_duplication_force_include_only PASSED [ 2%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_no_duplication_force_include_and_selection PASSED [ 2%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_no_duplication_force_include_with_sources PASSED [ 2%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_exists PASSED [ 2%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_order PASSED [ 2%] tests/backend/builders/test_app.py::test_class PASSED [ 2%] tests/backend/builders/test_app.py::test_default_versions PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_unset PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_default PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_specific PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_not_array PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_script_not_string PASSED [ 2%] tests/backend/builders/test_app.py::TestScripts::test_unknown_script PASSED [ 2%] tests/backend/builders/test_app.py::TestPythonVersion::test_default_no_source PASSED [ 2%] tests/backend/builders/test_app.py::TestPythonVersion::test_default_explicit_source PASSED [ 2%] tests/backend/builders/test_app.py::TestPythonVersion::test_set PASSED [ 2%] tests/backend/builders/test_app.py::TestPythonVersion::test_not_string PASSED [ 2%] tests/backend/builders/test_app.py::TestPythonVersion::test_compatibility PASSED [ 3%] tests/backend/builders/test_app.py::TestPythonVersion::test_incompatible PASSED [ 3%] tests/backend/builders/test_app.py::TestPyAppVersion::test_default PASSED [ 3%] tests/backend/builders/test_app.py::TestPyAppVersion::test_set PASSED [ 3%] tests/backend/builders/test_app.py::TestPyAppVersion::test_not_string PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_default PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_default_build_target PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_scripts PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_scripts_build_target PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_custom_cargo PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_no_cargo PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_python_version PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_pyapp_version PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_verbosity PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_local_build_with_build_target PASSED [ 3%] tests/backend/builders/test_app.py::TestBuildBootstrap::test_local_build_no_build_target PASSED [ 3%] tests/backend/builders/test_config.py::TestDirectory::test_default PASSED [ 3%] tests/backend/builders/test_config.py::TestDirectory::test_target PASSED [ 3%] tests/backend/builders/test_config.py::TestDirectory::test_target_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestDirectory::test_global PASSED [ 4%] tests/backend/builders/test_config.py::TestDirectory::test_global_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestDirectory::test_target_overrides_global PASSED [ 4%] tests/backend/builders/test_config.py::TestDirectory::test_absolute_path PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_default PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_global PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_global_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target_overrides_global PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_default PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_global PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_global_not_boolean PASSED [ 4%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target_overrides_global PASSED [ 4%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_default PASSED [ 4%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target_not_boolean PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_global PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_global_not_boolean PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target_overrides_global PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_default PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_not_array PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_not_string PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_empty_string PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_unknown PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_not_array PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_not_string PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_empty_string PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_unknown PASSED [ 5%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_overrides_global PASSED [ 5%] tests/backend/builders/test_config.py::TestOnlyPackages::test_default PASSED [ 5%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target PASSED [ 5%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target_not_boolean PASSED [ 6%] tests/backend/builders/test_config.py::TestOnlyPackages::test_global PASSED [ 6%] tests/backend/builders/test_config.py::TestOnlyPackages::test_global_not_boolean PASSED [ 6%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target_overrides_global PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_default PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_target PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_target_not_boolean PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_global PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_global_not_boolean PASSED [ 6%] tests/backend/builders/test_config.py::TestReproducible::test_target_overrides_global PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_default PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_invalid_type PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_pattern_not_string PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_pattern_empty_string PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_pattern_not_string PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_pattern_empty_string PASSED [ 6%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_overrides_global PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_default PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_target PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_target_not_boolean PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_global PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_global_not_boolean PASSED [ 7%] tests/backend/builders/test_config.py::TestDevModeExact::test_target_overrides_global PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_default PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_global_invalid_type PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_global PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_global_package_not_string PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_global_package_empty_string PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_target PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_target_package_not_string PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_target_package_empty_string PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_target_overrides_global PASSED [ 7%] tests/backend/builders/test_config.py::TestPackages::test_no_source PASSED [ 7%] tests/backend/builders/test_config.py::TestSources::test_default PASSED [ 7%] tests/backend/builders/test_config.py::TestSources::test_global_invalid_type PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_array PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_array_source_not_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_array_source_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_mapping PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_source_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_path_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_replacement_not_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_invalid_type PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_array PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_array_source_not_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_array_source_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_mapping PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_source_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_path_empty_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_replacement_not_string PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_target_overrides_global PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_no_source PASSED [ 8%] tests/backend/builders/test_config.py::TestSources::test_compatible_with_packages PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_default PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_invalid_type PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_absolute PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_source_empty_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative_path_not_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative_path_empty_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_invalid_type PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_absolute PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_source_empty_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative_path_not_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative_path_empty_string PASSED [ 9%] tests/backend/builders/test_config.py::TestForceInclude::test_order PASSED [ 9%] tests/backend/builders/test_config.py::TestOnlyInclude::test_default PASSED [ 9%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_invalid_type PASSED [ 9%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_path_not_string PASSED [ 9%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[/] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[~/foo] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[../foo] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_duplicate PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_correct PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_invalid_type PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_path_not_string PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[/] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[~/foo] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[../foo] PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_duplicate PASSED [ 10%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_correct PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_default_known PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_default_override PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_invalid_type PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_correct PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_empty_default PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_version_not_string PASSED [ 10%] tests/backend/builders/test_config.py::TestVersions::test_version_empty_string PASSED [ 11%] tests/backend/builders/test_config.py::TestVersions::test_unknown_version PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_default PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_target_not_table PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_target_hook_not_table PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_global_not_table PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_global_hook_not_table PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_global PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_order PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_target_overrides_global PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_no_hooks PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_enable_by_default PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_all_override_enable_by_default PASSED [ 11%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_specific_override_enable_by_default PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_default PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_target_not_array PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_target_dependency_not_string PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_global_not_array PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_global_dependency_not_string PASSED [ 11%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_dependencies_not_boolean PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_not_array PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_not_string PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_empty_string PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_unknown PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_dependencies_not_array PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hook_dependency_not_string PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_correct PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_require_runtime_dependencies PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_require_runtime_features PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_env_var_no_hooks PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_enable_by_default PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_env_var_all_override_enable_by_default PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_env_var_specific_override_enable_by_default PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_dependencies PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_dependencies_disabled PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_features PASSED [ 12%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_features_disabled PASSED [ 12%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_include PASSED [ 13%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_exclude PASSED [ 13%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_packages PASSED [ 13%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_only_include PASSED [ 13%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_global_exclude PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_default PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_becomes_spec PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_invalid_type PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global[/] PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global[\\] SKIPPED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_pattern_not_string PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_pattern_empty_string PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_packages_included[/] PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_packages_included[\\] SKIPPED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_target[/] PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_target[\\] SKIPPED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_pattern_not_string PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_pattern_empty_string PASSED [ 13%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_overrides_global[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_overrides_global[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_packages_included[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_packages_included[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_default[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_default[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_invalid_type PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_global[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_global[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_pattern_not_string PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_pattern_empty_string PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_pattern_not_string PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_pattern_empty_string PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_overrides_global[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_overrides_global[\\] SKIPPED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_git[/] PASSED [ 14%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_git[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_git[/] PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_git[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_mercurial[/] PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_mercurial[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_mercurial[/] PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_mercurial[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternExclude::test_override_default_global_exclude_patterns PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_default PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_becomes_spec PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_invalid_type PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global[/] PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_pattern_not_string PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_pattern_empty_string PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target[/] PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target[\\] SKIPPED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_pattern_not_string PASSED [ 15%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_pattern_empty_string PASSED [ 16%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_overrides_global[/] PASSED [ 16%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_overrides_global[\\] SKIPPED [ 16%] tests/backend/builders/test_config.py::TestPatternMatching::test_include_explicit PASSED [ 16%] tests/backend/builders/test_config.py::TestPatternMatching::test_no_include_greedy PASSED [ 16%] tests/backend/builders/test_config.py::TestPatternMatching::test_exclude_precedence PASSED [ 16%] tests/backend/builders/test_config.py::TestPatternMatching::test_artifact_super_precedence PASSED [ 16%] tests/backend/builders/test_custom.py::test_target_config_not_table PASSED [ 16%] tests/backend/builders/test_custom.py::test_no_path PASSED [ 16%] tests/backend/builders/test_custom.py::test_path_not_string PASSED [ 16%] tests/backend/builders/test_custom.py::test_nonexistent PASSED [ 16%] tests/backend/builders/test_custom.py::test_no_subclass PASSED [ 16%] tests/backend/builders/test_custom.py::test_multiple_subclasses PASSED [ 16%] tests/backend/builders/test_sdist.py::test_class PASSED [ 16%] tests/backend/builders/test_sdist.py::test_default_versions PASSED [ 16%] tests/backend/builders/test_sdist.py::TestSupportLegacy::test_default PASSED [ 16%] tests/backend/builders/test_sdist.py::TestSupportLegacy::test_target PASSED [ 16%] tests/backend/builders/test_sdist.py::TestCoreMetadataConstructor::test_default PASSED [ 16%] tests/backend/builders/test_sdist.py::TestCoreMetadataConstructor::test_not_string PASSED [ 17%] tests/backend/builders/test_sdist.py::TestCoreMetadataConstructor::test_unknown PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_default PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target_not_boolean PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_global PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_global_not_boolean PASSED [ 17%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target_overrides_global PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_default PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_packages PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_description PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_readme PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_name PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_email PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_name_and_email PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_multiple PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_name PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_email PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_name_and_email PASSED [ 17%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_multiple PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_classifiers PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_dependencies PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_dependencies_extra PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_optional_dependencies PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_scripts PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_gui_scripts PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_entry_points PASSED [ 18%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_all PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_no_reproducible PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_support_legacy PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_build_script_artifacts PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_build_script_extra_dependencies PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_project_file PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_project_file_always_included PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_config_file_always_included PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_readme PASSED [ 18%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_readme_always_included PASSED [ 19%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_license_files PASSED [ 19%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_license_files_always_included PASSED [ 19%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_vcs_git_exclusion_files PASSED [ 19%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_default_vcs_mercurial_exclusion_files PASSED [ 19%] tests/backend/builders/test_wheel.py::test_class PASSED [ 19%] tests/backend/builders/test_wheel.py::test_default_versions PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_already_defined PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_flat_layout PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_src_layout PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_single_module PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_namespace PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_default_error PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_bypass_selection_option PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_force_include_option_considered_selection PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_force_include_build_data_considered_selection PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_artifacts_build_data_considered_selection PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_unnormalized_name_with_unnormalized_directory PASSED [ 19%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_unnormalized_name_with_normalized_directory PASSED [ 20%] tests/backend/builders/test_wheel.py::TestCoreMetadataConstructor::test_default PASSED [ 20%] tests/backend/builders/test_wheel.py::TestCoreMetadataConstructor::test_not_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestCoreMetadataConstructor::test_unknown PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_default PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_invalid_type PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_absolute PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_source_empty_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative_path_not_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative_path_empty_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestSharedData::test_order PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_default PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_invalid_type PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_absolute PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_source_empty_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative_path_not_string PASSED [ 20%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative_path_empty_string PASSED [ 21%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_order PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_default PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target_not_boolean PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_global PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_global_not_boolean PASSED [ 21%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target_overrides_global PASSED [ 21%] tests/backend/builders/test_wheel.py::TestMacOSMaxCompat::test_default PASSED [ 21%] tests/backend/builders/test_wheel.py::TestMacOSMaxCompat::test_correct PASSED [ 21%] tests/backend/builders/test_wheel.py::TestMacOSMaxCompat::test_not_boolean PASSED [ 21%] tests/backend/builders/test_wheel.py::TestBypassSelection::test_default PASSED [ 21%] tests/backend/builders/test_wheel.py::TestBypassSelection::test_correct PASSED [ 21%] tests/backend/builders/test_wheel.py::TestBypassSelection::test_not_boolean PASSED [ 21%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_default PASSED [ 21%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_scripts PASSED [ 21%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_gui_scripts PASSED [ 21%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_entry_points PASSED [ 21%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_all PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_reproducible_timestamp PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_no_reproducible PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_multiple_licenses PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_include PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_only_packages PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_only_packages_artifact_override PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_python_constraint PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_default_tag PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_set_tag PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_known_artifacts PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_configured_build_hooks PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_extra_dependencies PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_dynamic_artifacts PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_dynamic_force_include PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_dynamic_force_include_duplicate PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_build_script_dynamic_artifacts_with_src_layout PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_shared_data PASSED [ 22%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_extra_metadata PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_extra_metadata_build_data PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_symlink PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_namespace_package PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_default_entry_points PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_explicit_selection_with_src_layout PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_single_module PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_no_strict_naming PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_editable_sources_rewrite_error PASSED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch x86_64-x86_64] SKIPPED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch arm64-arm64] SKIPPED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch arm64 -arch x86_64-universal2] SKIPPED [ 23%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_max_compat SKIPPED [ 23%] tests/backend/dep/test_core.py::test_no_dependencies PASSED [ 23%] tests/backend/dep/test_core.py::test_dependency_not_found PASSED [ 23%] tests/backend/dep/test_core.py::test_dependency_found PASSED [ 23%] tests/backend/dep/test_core.py::test_version_unmet PASSED [ 23%] tests/backend/dep/test_core.py::test_marker_met PASSED [ 23%] tests/backend/dep/test_core.py::test_marker_unmet PASSED [ 23%] tests/backend/dep/test_core.py::test_extra_no_dependencies PASSED [ 24%] tests/backend/dep/test_core.py::test_unknown_extra PASSED [ 24%] tests/backend/dep/test_core.py::test_extra_unmet PASSED [ 24%] tests/backend/dep/test_core.py::test_extra_met PASSED [ 24%] tests/backend/dep/test_core.py::test_dependency_git PASSED [ 24%] tests/backend/dep/test_core.py::test_dependency_git_revision PASSED [ 24%] tests/backend/dep/test_core.py::test_dependency_git_commit PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[or] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[and] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[with] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit and] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit with] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[or mit] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[and mit] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[with mit] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[(mit] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit)] PASSED [ 24%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or or apache-2.0] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or apache-2.0 (bsd-3-clause and MPL-2.0)] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_unknown_license PASSED [ 25%] tests/backend/licenses/test_parse.py::test_unknown_license_exception PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[mIt-MIT] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[mit or apache-2.0-MIT OR Apache-2.0] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[mit and apache-2.0-MIT AND Apache-2.0] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[gpl-2.0-or-later with bison-exception-2.2-GPL-2.0-or-later WITH Bison-exception-2.2] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[mit or apache-2.0 and (bsd-3-clause or mpl-2.0)-MIT OR Apache-2.0 AND (BSD-3-Clause OR MPL-2.0)] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[mit and (apache-2.0+ or mpl-2.0+)-MIT AND (Apache-2.0+ OR MPL-2.0+)] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[licenseref-public-domain-LicenseRef-Public-Domain] PASSED [ 25%] tests/backend/licenses/test_parse.py::test_normalization[licenseref-proprietary-LicenseRef-Proprietary] PASSED [ 25%] tests/backend/licenses/test_supported.py::test_licenses PASSED [ 25%] tests/backend/licenses/test_supported.py::test_exceptions PASSED [ 25%] tests/backend/metadata/test_build.py::TestRequires::test_default PASSED [ 25%] tests/backend/metadata/test_build.py::TestRequires::test_not_array PASSED [ 25%] tests/backend/metadata/test_build.py::TestRequires::test_entry_not_string PASSED [ 25%] tests/backend/metadata/test_build.py::TestRequires::test_invalid_specifier PASSED [ 25%] tests/backend/metadata/test_build.py::TestRequires::test_correct PASSED [ 26%] tests/backend/metadata/test_build.py::TestRequires::test_correct_complex_type PASSED [ 26%] tests/backend/metadata/test_build.py::TestBuildBackend::test_default PASSED [ 26%] tests/backend/metadata/test_build.py::TestBuildBackend::test_not_string PASSED [ 26%] tests/backend/metadata/test_build.py::TestBuildBackend::test_correct PASSED [ 26%] tests/backend/metadata/test_build.py::TestBackendPath::test_default PASSED [ 26%] tests/backend/metadata/test_build.py::TestBackendPath::test_not_array PASSED [ 26%] tests/backend/metadata/test_build.py::TestBackendPath::test_entry_not_string PASSED [ 26%] tests/backend/metadata/test_build.py::TestBackendPath::test_correct PASSED [ 26%] tests/backend/metadata/test_core.py::TestConfig::test_default PASSED [ 26%] tests/backend/metadata/test_core.py::TestConfig::test_reuse PASSED [ 26%] tests/backend/metadata/test_core.py::TestConfig::test_read PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_types PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_missing_core_metadata PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_core_metadata_not_table PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_tool_metadata_not_table PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_hatch_metadata_not_table PASSED [ 26%] tests/backend/metadata/test_core.py::TestInterface::test_build_metadata_not_table PASSED [ 26%] tests/backend/metadata/test_core.py::TestDynamic::test_not_array PASSED [ 27%] tests/backend/metadata/test_core.py::TestDynamic::test_entry_not_string PASSED [ 27%] tests/backend/metadata/test_core.py::TestDynamic::test_correct PASSED [ 27%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_not_array PASSED [ 27%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_entry_not_string PASSED [ 27%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_correct PASSED [ 27%] tests/backend/metadata/test_core.py::TestRawName::test_dynamic PASSED [ 27%] tests/backend/metadata/test_core.py::TestRawName::test_missing PASSED [ 27%] tests/backend/metadata/test_core.py::TestRawName::test_not_string PASSED [ 27%] tests/backend/metadata/test_core.py::TestRawName::test_invalid PASSED [ 27%] tests/backend/metadata/test_core.py::TestRawName::test_correct PASSED [ 27%] tests/backend/metadata/test_core.py::TestName::test_normalization[My--App] PASSED [ 27%] tests/backend/metadata/test_core.py::TestName::test_normalization[My__App] PASSED [ 27%] tests/backend/metadata/test_core.py::TestName::test_normalization[My..App] PASSED [ 27%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic PASSED [ 27%] tests/backend/metadata/test_core.py::TestVersion::test_static_missing PASSED [ 27%] tests/backend/metadata/test_core.py::TestVersion::test_static_not_string PASSED [ 27%] tests/backend/metadata/test_core.py::TestVersion::test_static_invalid PASSED [ 27%] tests/backend/metadata/test_core.py::TestVersion::test_static_normalization PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_missing PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_not_table PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_empty PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_not_string PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_unknown_source PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_regex PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_regex_invalid PASSED [ 28%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_error PASSED [ 28%] tests/backend/metadata/test_core.py::TestDescription::test_dynamic PASSED [ 28%] tests/backend/metadata/test_core.py::TestDescription::test_not_string PASSED [ 28%] tests/backend/metadata/test_core.py::TestDescription::test_default PASSED [ 28%] tests/backend/metadata/test_core.py::TestDescription::test_custom PASSED [ 28%] tests/backend/metadata/test_core.py::TestDescription::test_normaliza PASSED [ 28%] tests/backend/metadata/test_core.py::TestReadme::test_dynamic PASSED [ 28%] tests/backend/metadata/test_core.py::TestReadme::test_unknown_type[readme] PASSED [ 28%] tests/backend/metadata/test_core.py::TestReadme::test_unknown_type[readme_content_type] PASSED [ 28%] tests/backend/metadata/test_core.py::TestReadme::test_default PASSED [ 28%] tests/backend/metadata/test_core.py::TestReadme::test_string_path_unknown_content_type PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_string_path_nonexistent PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.md-text/markdown] PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.rst-text/x-rst] PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.txt-text/plain] PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_missing PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_not_string PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_not_unknown PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_multiple_options PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_no_option PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_not_string PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_nonexistent PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_correct PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_text_not_string PASSED [ 29%] tests/backend/metadata/test_core.py::TestReadme::test_table_text_correct PASSED [ 29%] tests/backend/metadata/test_core.py::TestRequiresPython::test_dynamic PASSED [ 29%] tests/backend/metadata/test_core.py::TestRequiresPython::test_not_string[requires_python] PASSED [ 29%] tests/backend/metadata/test_core.py::TestRequiresPython::test_not_string[python_constraint] PASSED [ 29%] tests/backend/metadata/test_core.py::TestRequiresPython::test_invalid PASSED [ 29%] tests/backend/metadata/test_core.py::TestRequiresPython::test_default PASSED [ 30%] tests/backend/metadata/test_core.py::TestRequiresPython::test_custom PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_dynamic PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_invalid_type PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_default PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_normalization PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_invalid_expression PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_multiple_options PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_no_option PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_file_not_string PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_file_nonexistent PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_file_correct PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_text_not_string PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicense::test_text_correct PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_dynamic PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_not_table PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_multiple_options PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_no_option PASSED [ 30%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_not_array PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_entry_not_string PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_not_array PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_entry_not_string PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_default_globs_no_licenses PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_default_globs_with_licenses PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_with_licenses PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_with_licenses PASSED [ 31%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_missing_license PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_dynamic PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_not_array PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_default PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_not_table PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_no_data PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_name_not_string PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_name_only PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_email_not_string PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_email_only PASSED [ 31%] tests/backend/metadata/test_core.py::TestAuthors::test_name_and_email PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_dynamic PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_not_array PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_default PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_not_table PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_no_data PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_not_string PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_only PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_email_not_string PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_email_only PASSED [ 32%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_and_email PASSED [ 32%] tests/backend/metadata/test_core.py::TestKeywords::test_dynamic PASSED [ 32%] tests/backend/metadata/test_core.py::TestKeywords::test_not_array PASSED [ 32%] tests/backend/metadata/test_core.py::TestKeywords::test_entry_not_string PASSED [ 32%] tests/backend/metadata/test_core.py::TestKeywords::test_correct PASSED [ 32%] tests/backend/metadata/test_core.py::TestClassifiers::test_dynamic PASSED [ 32%] tests/backend/metadata/test_core.py::TestClassifiers::test_not_array PASSED [ 32%] tests/backend/metadata/test_core.py::TestClassifiers::test_entry_not_string PASSED [ 32%] tests/backend/metadata/test_core.py::TestClassifiers::test_entry_unknown PASSED [ 33%] tests/backend/metadata/test_core.py::TestClassifiers::test_correct PASSED [ 33%] tests/backend/metadata/test_core.py::TestURLs::test_dynamic PASSED [ 33%] tests/backend/metadata/test_core.py::TestURLs::test_not_table PASSED [ 33%] tests/backend/metadata/test_core.py::TestURLs::test_entry_not_string PASSED [ 33%] tests/backend/metadata/test_core.py::TestURLs::test_correct PASSED [ 33%] tests/backend/metadata/test_core.py::TestScripts::test_dynamic PASSED [ 33%] tests/backend/metadata/test_core.py::TestScripts::test_not_table PASSED [ 33%] tests/backend/metadata/test_core.py::TestScripts::test_entry_not_string PASSED [ 33%] tests/backend/metadata/test_core.py::TestScripts::test_correct PASSED [ 33%] tests/backend/metadata/test_core.py::TestGUIScripts::test_dynamic PASSED [ 33%] tests/backend/metadata/test_core.py::TestGUIScripts::test_not_table PASSED [ 33%] tests/backend/metadata/test_core.py::TestGUIScripts::test_entry_not_string PASSED [ 33%] tests/backend/metadata/test_core.py::TestGUIScripts::test_correct PASSED [ 33%] tests/backend/metadata/test_core.py::TestEntryPoints::test_dynamic PASSED [ 33%] tests/backend/metadata/test_core.py::TestEntryPoints::test_not_table PASSED [ 33%] tests/backend/metadata/test_core.py::TestEntryPoints::test_forbidden_fields[console_scripts-scripts] PASSED [ 33%] tests/backend/metadata/test_core.py::TestEntryPoints::test_forbidden_fields[gui-scripts-gui-scripts] PASSED [ 33%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_not_table PASSED [ 34%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_entry_not_string PASSED [ 34%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_empty PASSED [ 34%] tests/backend/metadata/test_core.py::TestEntryPoints::test_default PASSED [ 34%] tests/backend/metadata/test_core.py::TestEntryPoints::test_correct PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_dynamic PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_not_array PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_entry_not_string PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_invalid PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_direct_reference PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_direct_reference_allowed PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_context_formatting PASSED [ 34%] tests/backend/metadata/test_core.py::TestDependencies::test_correct PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_dynamic PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_not_table PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_invalid_name PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_definitions_not_array PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_entry_not_string PASSED [ 34%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_invalid PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_conflict PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_allow_ambiguity PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_direct_reference PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_context_formatting PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_direct_reference_allowed PASSED [ 35%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_correct PASSED [ 35%] tests/backend/metadata/test_core.py::TestHook::test_unknown PASSED [ 35%] tests/backend/metadata/test_core.py::TestHook::test_custom PASSED [ 35%] tests/backend/metadata/test_core.py::TestHook::test_custom_missing_dynamic PASSED [ 35%] tests/backend/metadata/test_core.py::TestHatchPersonalProjectConfigFile::test_correct PASSED [ 35%] tests/backend/metadata/test_core.py::TestHatchPersonalProjectConfigFile::test_precedence PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_no_path PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_path_not_string PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_nonexistent PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_default PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_explicit_path PASSED [ 35%] tests/backend/metadata/test_custom_hook.py::test_no_subclass PASSED [ 35%] tests/backend/metadata/test_hatch.py::TestBuildConfig::test_default PASSED [ 35%] tests/backend/metadata/test_hatch.py::TestBuildConfig::test_not_table PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestBuildConfig::test_correct PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestBuildTargets::test_default PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestBuildTargets::test_not_table PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestBuildTargets::test_correct PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_empty PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_not_table PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_correct PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_default PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_missing PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_not_table PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_correct PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_default PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSource::test_unknown PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionSource::test_cached PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionScheme::test_unknown PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestVersionScheme::test_cached PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestMetadata::test_default PASSED [ 36%] tests/backend/metadata/test_hatch.py::TestMetadata::test_not_table PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadata::test_correct PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowDirectReferences::test_default PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowDirectReferences::test_not_boolean PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowDirectReferences::test_correct PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowAmbiguousFeatures::test_default PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowAmbiguousFeatures::test_not_boolean PASSED [ 37%] tests/backend/metadata/test_hatch.py::TestMetadataAllowAmbiguousFeatures::test_correct PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_default[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_description[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_urls[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_name[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_email[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_name_and_email[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_multiple[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_name[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_email[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_name_and_email[construct_metadata_file_1_2] PASSED [ 37%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_multiple[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_license[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_keywords_single[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_keywords_multiple[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_classifiers[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_requires_python[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_dependencies[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_extra_runtime_dependencies[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_all[construct_metadata_file_1_2] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_default[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_description[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_urls[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_name[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_email[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_name_and_email[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_multiple[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_name[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_email[construct_metadata_file_2_1] PASSED [ 38%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_name_and_email[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_multiple[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_license[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_license_expression[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_keywords_single[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_keywords_multiple[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_classifiers[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_requires_python[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_dependencies[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_optional_dependencies[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_extra_runtime_dependencies[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_readme[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_all[construct_metadata_file_2_1] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_default[construct_metadata_file_2_2] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_description[construct_metadata_file_2_2] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_urls[construct_metadata_file_2_2] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_name[construct_metadata_file_2_2] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_email[construct_metadata_file_2_2] PASSED [ 39%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_name_and_email[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_multiple[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_name[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_email[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_name_and_email[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_multiple[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_license[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_license_expression[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_keywords_single[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_keywords_multiple[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_classifiers[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_requires_python[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_dependencies[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_optional_dependencies[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_optional_complex_dependencies[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_extra_runtime_dependencies[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_readme[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_all[construct_metadata_file_2_2] PASSED [ 40%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_default[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_description[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_urls[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_name[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_email[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_name_and_email[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_multiple[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_name[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_email[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_name_and_email[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_multiple[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_license_expression[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_license_files[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_keywords_single[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_keywords_multiple[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_classifiers[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_requires_python[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_dependencies[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_optional_dependencies[construct_metadata_file_2_3] PASSED [ 41%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_extra_runtime_dependencies[construct_metadata_file_2_3] PASSED [ 42%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_readme[construct_metadata_file_2_3] PASSED [ 42%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_all[construct_metadata_file_2_3] PASSED [ 42%] tests/backend/test_build.py::test_sdist PASSED [ 42%] tests/backend/test_build.py::test_wheel PASSED [ 42%] tests/backend/test_build.py::test_editable PASSED [ 42%] tests/backend/utils/test_context.py::test_normal PASSED [ 42%] tests/backend/utils/test_context.py::TestStatic::test_directory_separator PASSED [ 42%] tests/backend/utils/test_context.py::TestStatic::test_path_separator PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_default PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_parent_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_uri PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_uri_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_uri_parent_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_real PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_real_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_real_parent_parent PASSED [ 42%] tests/backend/utils/test_context.py::TestRoot::test_unknown_modifier PASSED [ 43%] tests/backend/utils/test_context.py::TestRoot::test_too_many_modifiers_after_parent PASSED [ 43%] tests/backend/utils/test_context.py::TestHome::test_default PASSED [ 43%] tests/backend/utils/test_context.py::TestHome::test_uri PASSED [ 43%] tests/backend/utils/test_context.py::TestHome::test_real PASSED [ 43%] tests/backend/utils/test_context.py::TestHome::test_unknown_modifier PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_set PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_default PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_default_empty_string PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_default_nested_set PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_default_nested_default PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_no_selection PASSED [ 43%] tests/backend/utils/test_context.py::TestEnvVars::test_unset_without_default PASSED [ 43%] tests/backend/utils/test_fs.py::TestPathToURI::test_unix PASSED [ 43%] tests/backend/utils/test_fs.py::TestPathToURI::test_character_escaping PASSED [ 43%] tests/backend/version/scheme/test_standard.py::test_not_higher PASSED [ 43%] tests/backend/version/scheme/test_standard.py::test_specific PASSED [ 43%] tests/backend/version/scheme/test_standard.py::test_specific_not_higher_allowed PASSED [ 43%] tests/backend/version/scheme/test_standard.py::test_release PASSED [ 44%] tests/backend/version/scheme/test_standard.py::test_major PASSED [ 44%] tests/backend/version/scheme/test_standard.py::test_minor PASSED [ 44%] tests/backend/version/scheme/test_standard.py::test_micro[micro] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::test_micro[patch] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::test_micro[fix] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[a] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[b] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[c] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[rc] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[alpha] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[beta] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[pre] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[preview] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[a] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[b] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[c] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[rc] PASSED [ 44%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[alpha] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[beta] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[pre] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[preview] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[a] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[b] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[c] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[rc] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[alpha] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[beta] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[pre] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[preview] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[post] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[rev] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[r] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[post] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[rev] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[r] PASSED [ 45%] tests/backend/version/scheme/test_standard.py::TestDev::test_begin PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestDev::test_continue PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_explicit_error PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[fix,rc-0.0.2rc0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[minor,dev-0.1.0.dev0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[minor,preview-0.1.0rc0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[major,beta-1.0.0b0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[major,major,major-3.0.0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[patch,dev,release-1!0.0.2] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[fix,rc-1!0.0.2rc0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[minor,dev-1!0.1.0.dev0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[minor,preview-1!0.1.0rc0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[major,beta-1!1.0.0b0] PASSED [ 46%] tests/backend/version/scheme/test_standard.py::TestWithEpoch::test_correct[major,major,major-1!3.0.0] PASSED [ 46%] tests/backend/version/source/test_code.py::test_no_path PASSED [ 46%] tests/backend/version/source/test_code.py::test_path_not_string PASSED [ 46%] tests/backend/version/source/test_code.py::test_path_nonexistent PASSED [ 46%] tests/backend/version/source/test_code.py::test_expression_not_string PASSED [ 46%] tests/backend/version/source/test_code.py::test_search_paths_not_array PASSED [ 47%] tests/backend/version/source/test_code.py::test_search_paths_entry_not_string PASSED [ 47%] tests/backend/version/source/test_code.py::test_match_default_expression PASSED [ 47%] tests/backend/version/source/test_code.py::test_match_custom_expression_basic PASSED [ 47%] tests/backend/version/source/test_code.py::test_match_custom_expression_complex PASSED [ 47%] tests/backend/version/source/test_code.py::test_search_paths PASSED [ 47%] tests/backend/version/source/test_env.py::test_no_variable PASSED [ 47%] tests/backend/version/source/test_env.py::test_variable_not_string PASSED [ 47%] tests/backend/version/source/test_env.py::test_variable_not_available PASSED [ 47%] tests/backend/version/source/test_env.py::test_variable_contains_version PASSED [ 47%] tests/backend/version/source/test_regex.py::test_no_path PASSED [ 47%] tests/backend/version/source/test_regex.py::test_path_not_string PASSED [ 47%] tests/backend/version/source/test_regex.py::test_path_nonexistent PASSED [ 47%] tests/backend/version/source/test_regex.py::test_pattern_not_string PASSED [ 47%] tests/backend/version/source/test_regex.py::test_no_version PASSED [ 47%] tests/backend/version/source/test_regex.py::test_pattern_no_version_group PASSED [ 47%] tests/backend/version/source/test_regex.py::test_match_custom_pattern PASSED [ 47%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-"-] PASSED [ 47%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-"-v] PASSED [ 47%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-'-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-'-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-"-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-"-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-'-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-'-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-"-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-"-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-'-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-'-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-"-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-"-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-'-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-'-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-"-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-"-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-'-] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-'-v] PASSED [ 48%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-"-] PASSED [ 49%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-"-v] PASSED [ 49%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-'-] PASSED [ 49%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-'-v] PASSED [ 49%] tests/cli/build/test_build.py::TestOtherBackend::test_standard PASSED [ 49%] tests/cli/build/test_build.py::TestOtherBackend::test_legacy PASSED [ 49%] tests/cli/build/test_build.py::test_no_compatibility_check_if_exists PASSED [ 49%] tests/cli/config/test_find.py::test PASSED [ 49%] tests/cli/config/test_restore.py::test_standard PASSED [ 49%] tests/cli/config/test_restore.py::test_allow_invalid_config PASSED [ 49%] tests/cli/config/test_set.py::test_standard PASSED [ 49%] tests/cli/config/test_set.py::test_standard_deep PASSED [ 49%] tests/cli/config/test_set.py::test_standard_complex_sequence PASSED [ 49%] tests/cli/config/test_set.py::test_standard_complex_map PASSED [ 49%] tests/cli/config/test_set.py::test_standard_hidden PASSED [ 49%] tests/cli/config/test_set.py::test_prompt PASSED [ 49%] tests/cli/config/test_set.py::test_prompt_hidden PASSED [ 49%] tests/cli/config/test_set.py::test_prevent_invalid_config PASSED [ 49%] tests/cli/config/test_set.py::test_resolve_project_location_basic PASSED [ 50%] tests/cli/config/test_set.py::test_resolve_project_location_complex PASSED [ 50%] tests/cli/config/test_set.py::test_booleans PASSED [ 50%] tests/cli/config/test_show.py::test_default_scrubbed PASSED [ 50%] tests/cli/config/test_show.py::test_reveal PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_incompatible_environment PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_project_only PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_environment_only PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_default_both PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_unknown_feature PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_features_only PASSED [ 50%] tests/cli/dep/show/test_requirements.py::test_include_features PASSED [ 50%] tests/cli/dep/show/test_table.py::test_incompatible_environment PASSED [ 50%] tests/cli/dep/show/test_table.py::test_project_only PASSED [ 50%] tests/cli/dep/show/test_table.py::test_environment_only PASSED [ 50%] tests/cli/dep/show/test_table.py::test_default_both PASSED [ 50%] tests/cli/dep/show/test_table.py::test_optional_columns PASSED [ 50%] tests/cli/dep/test_hash.py::test_incompatible_environment PASSED [ 50%] tests/cli/dep/test_hash.py::test_all PASSED [ 51%] tests/cli/dep/test_hash.py::test_project_only PASSED [ 51%] tests/cli/env/test_create.py::test_undefined PASSED [ 51%] tests/cli/env/test_create.py::test_unknown_type PASSED [ 51%] tests/cli/env/test_create.py::test_new PASSED [ 51%] tests/cli/env/test_create.py::test_selected_absolute_directory PASSED [ 51%] tests/cli/env/test_create.py::test_option_absolute_directory PASSED [ 51%] tests/cli/env/test_create.py::test_env_var_absolute_directory PASSED [ 51%] tests/cli/env/test_create.py::test_selected_local_directory PASSED [ 51%] tests/cli/env/test_create.py::test_option_local_directory PASSED [ 51%] tests/cli/env/test_create.py::test_env_var_local_directory PASSED [ 51%] tests/cli/env/test_create.py::test_enter_project_directory PASSED [ 51%] tests/cli/env/test_create.py::test_already_created PASSED [ 51%] tests/cli/env/test_create.py::test_default PASSED [ 51%] tests/cli/env/test_create.py::test_matrix PASSED [ 51%] tests/cli/env/test_create.py::test_incompatible_single PASSED [ 51%] tests/cli/env/test_create.py::test_incompatible_matrix_full PASSED [ 51%] tests/cli/env/test_create.py::test_incompatible_matrix_partial PASSED [ 51%] tests/cli/env/test_create.py::test_install_project_default_dev_mode PASSED [ 52%] tests/cli/env/test_create.py::test_install_project_no_dev_mode PASSED [ 52%] tests/cli/env/test_create.py::test_pre_install_commands PASSED [ 52%] tests/cli/env/test_create.py::test_pre_install_commands_error PASSED [ 52%] tests/cli/env/test_create.py::test_post_install_commands PASSED [ 52%] tests/cli/env/test_create.py::test_post_install_commands_error PASSED [ 52%] tests/cli/env/test_create.py::test_sync_dependencies PASSED [ 52%] tests/cli/env/test_create.py::test_features PASSED [ 52%] tests/cli/env/test_create.py::test_sync_dynamic_dependencies PASSED [ 52%] tests/cli/env/test_create.py::test_unknown_dynamic_feature PASSED [ 52%] tests/cli/env/test_create.py::test_no_project_file PASSED [ 52%] tests/cli/env/test_create.py::test_no_compatible_python PASSED [ 52%] tests/cli/env/test_create.py::test_no_compatible_python_ok_if_not_installed PASSED [ 52%] tests/cli/env/test_find.py::test_undefined PASSED [ 52%] tests/cli/env/test_find.py::test_single PASSED [ 52%] tests/cli/env/test_find.py::test_matrix PASSED [ 52%] tests/cli/env/test_prune.py::test_unknown_type PASSED [ 52%] tests/cli/env/test_prune.py::test_all PASSED [ 52%] tests/cli/env/test_prune.py::test_incompatible_ok PASSED [ 52%] tests/cli/env/test_prune.py::test_active PASSED [ 53%] tests/cli/env/test_remove.py::test_unknown PASSED [ 53%] tests/cli/env/test_remove.py::test_nonexistent PASSED [ 53%] tests/cli/env/test_remove.py::test_single PASSED [ 53%] tests/cli/env/test_remove.py::test_all PASSED [ 53%] tests/cli/env/test_remove.py::test_matrix_all PASSED [ 53%] tests/cli/env/test_remove.py::test_matrix_all_local_directory PASSED [ 53%] tests/cli/env/test_remove.py::test_incompatible_ok PASSED [ 53%] tests/cli/env/test_remove.py::test_active PASSED [ 53%] tests/cli/env/test_remove.py::test_active_override PASSED [ 53%] tests/cli/env/test_run.py::test_filter_not_mapping PASSED [ 53%] tests/cli/env/test_run.py::test_filter PASSED [ 53%] tests/cli/env/test_run.py::test_force_continue PASSED [ 53%] tests/cli/env/test_run.py::test_ignore_compatibility PASSED [ 53%] tests/cli/env/test_show.py::test_default PASSED [ 53%] tests/cli/env/test_show.py::test_default_as_json PASSED [ 53%] tests/cli/env/test_show.py::test_single_only PASSED [ 53%] tests/cli/env/test_show.py::test_single_and_matrix PASSED [ 53%] tests/cli/env/test_show.py::test_default_matrix_only PASSED [ 54%] tests/cli/env/test_show.py::test_all_matrix_types_with_single PASSED [ 54%] tests/cli/env/test_show.py::test_specific PASSED [ 54%] tests/cli/env/test_show.py::test_specific_unknown PASSED [ 54%] tests/cli/env/test_show.py::test_optional_columns PASSED [ 54%] tests/cli/env/test_show.py::test_context_formatting PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestDefaults::test_fix PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestDefaults::test_check PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestDefaults::test_existing_config PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestPreview::test_fix_flag PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestPreview::test_check_flag PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestPreview::test_config_fallback_linter PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestPreview::test_config_fallback_formatter PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestComponents::test_only_linter PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestComponents::test_only_formatter PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestComponents::test_select_multiple PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestArguments::test_forwarding PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestConfigPath::test_sync_without_config PASSED [ 54%] tests/cli/fmt/test_fmt.py::TestConfigPath::test_sync PASSED [ 55%] tests/cli/fmt/test_fmt.py::TestConfigPath::test_no_sync PASSED [ 55%] tests/cli/fmt/test_fmt.py::TestConfigPath::test_sync_legacy_config PASSED [ 55%] tests/cli/new/test_new.py::TestErrors::test_path_is_file PASSED [ 55%] tests/cli/new/test_new.py::TestErrors::test_path_not_empty PASSED [ 55%] tests/cli/new/test_new.py::TestErrors::test_no_plugins_found PASSED [ 55%] tests/cli/new/test_new.py::TestErrors::test_some_not_plugins_found PASSED [ 55%] tests/cli/new/test_new.py::test_default PASSED [ 55%] tests/cli/new/test_new.py::test_default_explicit_path PASSED [ 55%] tests/cli/new/test_new.py::test_default_empty_plugins_table PASSED [ 55%] tests/cli/new/test_new.py::test_default_no_license_cache PASSED [ 55%] tests/cli/new/test_new.py::test_licenses_multiple PASSED [ 55%] tests/cli/new/test_new.py::test_licenses_empty PASSED [ 55%] tests/cli/new/test_new.py::test_projects_urls_space_in_label PASSED [ 55%] tests/cli/new/test_new.py::test_projects_urls_empty PASSED [ 55%] tests/cli/new/test_new.py::test_feature_cli PASSED [ 55%] tests/cli/new/test_new.py::test_feature_ci PASSED [ 55%] tests/cli/new/test_new.py::test_feature_no_src_layout PASSED [ 55%] tests/cli/new/test_new.py::test_feature_tests_disable PASSED [ 56%] tests/cli/new/test_new.py::test_no_project_name_error PASSED [ 56%] tests/cli/new/test_new.py::test_interactive PASSED [ 56%] tests/cli/new/test_new.py::test_no_project_name_enables_interactive PASSED [ 56%] tests/cli/new/test_new.py::test_initialize_fresh PASSED [ 56%] tests/cli/new/test_new.py::test_initialize_update PASSED [ 56%] tests/cli/new/test_new.py::test_initialize_setup_cfg_only PASSED [ 56%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_no_compatibility_check_if_exists PASSED [ 56%] tests/cli/python/test_find.py::test_not_installed PASSED [ 56%] tests/cli/python/test_find.py::test_binary ERROR [ 56%] tests/cli/python/test_find.py::test_parent ERROR [ 56%] tests/cli/python/test_install.py::test_unknown PASSED [ 56%] tests/cli/python/test_install.py::test_incompatible_single ERROR [ 56%] tests/cli/python/test_install.py::test_incompatible_all PASSED [ 56%] tests/cli/python/test_install.py::test_installation FAILED [ 56%] tests/cli/python/test_install.py::test_already_installed_latest ERROR [ 56%] tests/cli/python/test_install.py::test_already_installed_update_disabled ERROR [ 56%] tests/cli/python/test_install.py::test_already_installed_update_prompt ERROR [ 56%] tests/cli/python/test_install.py::test_already_installed_update_flag ERROR [ 57%] tests/cli/python/test_install.py::test_already_in_path[in_current_path] ERROR [ 57%] tests/cli/python/test_install.py::test_already_in_path[in_new_path] ERROR [ 57%] tests/cli/python/test_install.py::test_private ERROR [ 57%] tests/cli/python/test_install.py::test_specific_location ERROR [ 57%] tests/cli/python/test_install.py::test_all FAILED [ 57%] tests/cli/python/test_remove.py::test_not_installed PASSED [ 57%] tests/cli/python/test_remove.py::test_basic FAILED [ 57%] tests/cli/python/test_remove.py::test_specific_location ERROR [ 57%] tests/cli/python/test_remove.py::test_all FAILED [ 57%] tests/cli/python/test_show.py::test_nothing_installed FAILED [ 57%] tests/cli/python/test_show.py::test_some_installed ERROR [ 57%] tests/cli/python/test_show.py::test_all_installed FAILED [ 57%] tests/cli/python/test_show.py::test_specific_location ERROR [ 57%] tests/cli/python/test_show.py::test_outdated ERROR [ 57%] tests/cli/python/test_update.py::test_not_installed PASSED [ 57%] tests/cli/python/test_update.py::test_basic ERROR [ 57%] tests/cli/python/test_update.py::test_specific_location ERROR [ 57%] tests/cli/python/test_update.py::test_all FAILED [ 58%] tests/cli/run/test_run.py::test_help PASSED [ 58%] tests/cli/run/test_run.py::test_automatic_creation PASSED [ 58%] tests/cli/run/test_run.py::test_no_compatibility_check_if_exists PASSED [ 58%] tests/cli/run/test_run.py::test_enter_project_directory PASSED [ 58%] tests/cli/run/test_run.py::test_sync_dependencies PASSED [ 58%] tests/cli/run/test_run.py::test_sync_project_dependencies PASSED [ 58%] tests/cli/run/test_run.py::test_sync_project_features PASSED [ 58%] tests/cli/run/test_run.py::test_dependency_hash_checking PASSED [ 58%] tests/cli/run/test_run.py::test_scripts PASSED [ 58%] tests/cli/run/test_run.py::test_scripts_specific_environment PASSED [ 58%] tests/cli/run/test_run.py::test_scripts_no_environment PASSED [ 58%] tests/cli/run/test_run.py::test_error PASSED [ 58%] tests/cli/run/test_run.py::test_ignore_error PASSED [ 58%] tests/cli/run/test_run.py::test_command_expansion_error PASSED [ 58%] tests/cli/run/test_run.py::test_verbosity PASSED [ 58%] tests/cli/run/test_run.py::test_matrix_no_environments PASSED [ 58%] tests/cli/run/test_run.py::test_matrix PASSED [ 58%] tests/cli/run/test_run.py::test_incompatible_single PASSED [ 58%] tests/cli/run/test_run.py::test_incompatible_matrix_full PASSED [ 59%] tests/cli/run/test_run.py::test_incompatible_matrix_partial PASSED [ 59%] tests/cli/run/test_run.py::test_incompatible_missing_python PASSED [ 59%] tests/cli/run/test_run.py::test_env_detection PASSED [ 59%] tests/cli/run/test_run.py::test_env_detection_override PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_no_command PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_duplicate_inclusion PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_duplicate_exclusion PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_python_alias PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_not_matrix PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_inclusion PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_exclusion PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_exclude_all PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_include_none PASSED [ 59%] tests/cli/run/test_run.py::test_matrix_variable_selection_inclusion_multiple_variables PASSED [ 59%] tests/cli/run/test_run.py::test_context_formatting_recursion PASSED [ 59%] tests/cli/run/test_run.py::test_install_python_specific ERROR [ 59%] tests/cli/run/test_run.py::test_update_python_specific ERROR [ 59%] tests/cli/run/test_run.py::test_install_python_max_compatible ERROR [ 60%] tests/cli/run/test_run.py::test_update_python_max_compatible ERROR [ 60%] tests/cli/run/test_run.py::test_python_installation_with_metadata_hook ERROR [ 60%] tests/cli/self/test_self.py::test PASSED [ 60%] tests/cli/status/test_status.py::TestModeLocalDefault::test_no_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeLocalDefault::test_found_project PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_flag[pyproject.toml] PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_flag[setup.py] PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_env[pyproject.toml] PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_env[setup.py] PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_unknown_project PASSED [ 60%] tests/cli/status/test_status.py::TestProjectExplicit::test_not_a_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeProject::test_no_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeProject::test_unknown_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeProject::test_not_a_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeProject::test_found_project[pyproject.toml] PASSED [ 60%] tests/cli/status/test_status.py::TestModeProject::test_found_project[setup.py] PASSED [ 60%] tests/cli/status/test_status.py::TestModeAware::test_no_detection_no_project PASSED [ 60%] tests/cli/status/test_status.py::TestModeAware::test_unknown_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeAware::test_not_a_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeAware::test_found_project[pyproject.toml] PASSED [ 61%] tests/cli/status/test_status.py::TestModeAware::test_found_project[setup.py] PASSED [ 61%] tests/cli/status/test_status.py::TestModeAware::test_local_override PASSED [ 61%] tests/cli/test_root.py::TestFreshInstallation::test_config_file_creation_default PASSED [ 61%] tests/cli/test_root.py::TestFreshInstallation::test_config_file_creation_verbose PASSED [ 61%] tests/cli/test_root.py::test_no_subcommand_shows_help PASSED [ 61%] tests/cli/test_root.py::test_no_config_file PASSED [ 61%] tests/cli/version/test_version.py::TestNoProject::test_random_directory PASSED [ 61%] tests/cli/version/test_version.py::TestNoProject::test_configured_project PASSED [ 61%] tests/cli/version/test_version.py::test_incompatible_environment PASSED [ 61%] tests/cli/version/test_version.py::test_show_dynamic PASSED [ 61%] tests/cli/version/test_version.py::test_no_compatibility_check_if_exists PASSED [ 61%] tests/cli/version/test_version.py::test_set_dynamic PASSED [ 61%] tests/cli/version/test_version.py::test_show_static PASSED [ 61%] tests/cli/version/test_version.py::test_set_static PASSED [ 61%] tests/config/test_model.py::test_default PASSED [ 61%] tests/config/test_model.py::TestMode::test_default PASSED [ 62%] tests/config/test_model.py::TestMode::test_defined PASSED [ 62%] tests/config/test_model.py::TestMode::test_not_string PASSED [ 62%] tests/config/test_model.py::TestMode::test_unknown PASSED [ 62%] tests/config/test_model.py::TestMode::test_set_lazy_error PASSED [ 62%] tests/config/test_model.py::TestProject::test_default PASSED [ 62%] tests/config/test_model.py::TestProject::test_defined PASSED [ 62%] tests/config/test_model.py::TestProject::test_not_string PASSED [ 62%] tests/config/test_model.py::TestProject::test_set_lazy_error PASSED [ 62%] tests/config/test_model.py::TestShell::test_default PASSED [ 62%] tests/config/test_model.py::TestShell::test_invalid_type PASSED [ 62%] tests/config/test_model.py::TestShell::test_string PASSED [ 62%] tests/config/test_model.py::TestShell::test_table PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_with_path PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_with_path_and_args PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_no_name PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_name_not_string PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_path_not_string PASSED [ 62%] tests/config/test_model.py::TestShell::test_table_args_not_array PASSED [ 63%] tests/config/test_model.py::TestShell::test_table_args_entry_not_string PASSED [ 63%] tests/config/test_model.py::TestShell::test_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestShell::test_table_name_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestShell::test_table_path_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestShell::test_table_args_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestDirs::test_default PASSED [ 63%] tests/config/test_model.py::TestDirs::test_not_table PASSED [ 63%] tests/config/test_model.py::TestDirs::test_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestDirs::test_project PASSED [ 63%] tests/config/test_model.py::TestDirs::test_project_not_array PASSED [ 63%] tests/config/test_model.py::TestDirs::test_project_entry_not_string PASSED [ 63%] tests/config/test_model.py::TestDirs::test_project_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestDirs::test_env PASSED [ 63%] tests/config/test_model.py::TestDirs::test_env_not_table PASSED [ 63%] tests/config/test_model.py::TestDirs::test_env_value_not_string PASSED [ 63%] tests/config/test_model.py::TestDirs::test_env_set_lazy_error PASSED [ 63%] tests/config/test_model.py::TestDirs::test_python PASSED [ 63%] tests/config/test_model.py::TestDirs::test_python_not_string PASSED [ 64%] tests/config/test_model.py::TestDirs::test_python_set_lazy_error PASSED [ 64%] tests/config/test_model.py::TestDirs::test_data PASSED [ 64%] tests/config/test_model.py::TestDirs::test_data_not_string PASSED [ 64%] tests/config/test_model.py::TestDirs::test_data_set_lazy_error PASSED [ 64%] tests/config/test_model.py::TestDirs::test_cache PASSED [ 64%] tests/config/test_model.py::TestDirs::test_cache_not_string PASSED [ 64%] tests/config/test_model.py::TestDirs::test_cache_set_lazy_error PASSED [ 64%] tests/config/test_model.py::TestProjects::test_default PASSED [ 64%] tests/config/test_model.py::TestProjects::test_not_table PASSED [ 64%] tests/config/test_model.py::TestProjects::test_set_lazy_error PASSED [ 64%] tests/config/test_model.py::TestProjects::test_entry_invalid_type PASSED [ 64%] tests/config/test_model.py::TestProjects::test_string PASSED [ 64%] tests/config/test_model.py::TestProjects::test_table PASSED [ 64%] tests/config/test_model.py::TestProjects::test_table_no_location PASSED [ 64%] tests/config/test_model.py::TestProjects::test_location_not_string PASSED [ 64%] tests/config/test_model.py::TestProjects::test_location_set_lazy_error PASSED [ 64%] tests/config/test_model.py::TestPublish::test_default PASSED [ 64%] tests/config/test_model.py::TestPublish::test_defined PASSED [ 64%] tests/config/test_model.py::TestPublish::test_not_table PASSED [ 65%] tests/config/test_model.py::TestPublish::test_data_not_table PASSED [ 65%] tests/config/test_model.py::TestPublish::test_set_lazy_error PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_not_table PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_set_lazy_error PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name_default_env_var PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name_default_git PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name_default_no_git PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name_not_string PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_name_set_lazy_error PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email_default_env_var PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email_default_git PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email_default_no_git PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email_not_string PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_email_set_lazy_error PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_licenses_not_table PASSED [ 65%] tests/config/test_model.py::TestTemplate::test_licenses_set_lazy_error PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_headers PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_headers_default PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_headers_not_boolean PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_headers_set_lazy_error PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_default PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_default_default PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_default_not_array PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_default_entry_not_string PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_licenses_default_set_lazy_error PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_plugins PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_plugins_default PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_plugins_not_table PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_plugins_data_not_table PASSED [ 66%] tests/config/test_model.py::TestTemplate::test_plugins_set_lazy_error PASSED [ 66%] tests/config/test_model.py::TestTerminal::test_default PASSED [ 66%] tests/config/test_model.py::TestTerminal::test_not_table PASSED [ 66%] tests/config/test_model.py::TestTerminal::test_set_lazy_error PASSED [ 66%] tests/config/test_model.py::TestTerminal::test_styles_not_table PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_info PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_info_not_string PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_info_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_success PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_success_not_string PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_success_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_error_not_string PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_error_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_warning PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_warning_not_string PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_warning_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_waiting PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_waiting_not_string PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_waiting_set_lazy_error PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_debug PASSED [ 67%] tests/config/test_model.py::TestTerminal::test_styles_debug_not_string PASSED [ 68%] tests/config/test_model.py::TestTerminal::test_styles_debug_set_lazy_error PASSED [ 68%] tests/config/test_model.py::TestTerminal::test_styles_spinner PASSED [ 68%] tests/config/test_model.py::TestTerminal::test_styles_spinner_not_string PASSED [ 68%] tests/config/test_model.py::TestTerminal::test_styles_spinner_set_lazy_error PASSED [ 68%] tests/env/collectors/test_custom.py::test_no_path PASSED [ 68%] tests/env/collectors/test_custom.py::test_path_not_string PASSED [ 68%] tests/env/collectors/test_custom.py::test_nonexistent PASSED [ 68%] tests/env/collectors/test_custom.py::test_default PASSED [ 68%] tests/env/collectors/test_custom.py::test_explicit_path PASSED [ 68%] tests/env/collectors/test_custom.py::test_no_subclass PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvVars::test_default PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvVars::test_not_table PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvVars::test_value_not_string PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvVars::test_correct PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvVars::test_context_formatting PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvInclude::test_default PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvInclude::test_not_array PASSED [ 68%] tests/env/plugin/test_interface.py::TestEnvInclude::test_pattern_not_string PASSED [ 69%] tests/env/plugin/test_interface.py::TestEnvInclude::test_correct PASSED [ 69%] tests/env/plugin/test_interface.py::TestEnvExclude::test_default PASSED [ 69%] tests/env/plugin/test_interface.py::TestEnvExclude::test_not_array PASSED [ 69%] tests/env/plugin/test_interface.py::TestEnvExclude::test_pattern_not_string PASSED [ 69%] tests/env/plugin/test_interface.py::TestEnvExclude::test_correct PASSED [ 69%] tests/env/plugin/test_interface.py::TestPlatforms::test_default PASSED [ 69%] tests/env/plugin/test_interface.py::TestPlatforms::test_not_array PASSED [ 69%] tests/env/plugin/test_interface.py::TestPlatforms::test_entry_not_string PASSED [ 69%] tests/env/plugin/test_interface.py::TestPlatforms::test_correct PASSED [ 69%] tests/env/plugin/test_interface.py::TestSkipInstall::test_default_project PASSED [ 69%] tests/env/plugin/test_interface.py::TestSkipInstall::test_default_no_project PASSED [ 69%] tests/env/plugin/test_interface.py::TestSkipInstall::test_not_boolean PASSED [ 69%] tests/env/plugin/test_interface.py::TestSkipInstall::test_enable PASSED [ 69%] tests/env/plugin/test_interface.py::TestDevMode::test_default PASSED [ 69%] tests/env/plugin/test_interface.py::TestDevMode::test_not_boolean PASSED [ 69%] tests/env/plugin/test_interface.py::TestDevMode::test_disable PASSED [ 69%] tests/env/plugin/test_interface.py::TestFeatures::test_default PASSED [ 69%] tests/env/plugin/test_interface.py::TestFeatures::test_invalid_type PASSED [ 70%] tests/env/plugin/test_interface.py::TestFeatures::test_correct PASSED [ 70%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_not_string PASSED [ 70%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_empty_string PASSED [ 70%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_undefined PASSED [ 70%] tests/env/plugin/test_interface.py::TestDescription::test_default PASSED [ 70%] tests/env/plugin/test_interface.py::TestDescription::test_not_string PASSED [ 70%] tests/env/plugin/test_interface.py::TestDescription::test_correct PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_default PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_not_array PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_entry_not_string PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_invalid PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_not_array PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_entry_not_string PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_invalid PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_full PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_context_formatting PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_full_skip_install PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_full_skip_install_and_features PASSED [ 70%] tests/env/plugin/test_interface.py::TestDependencies::test_full_dev_mode PASSED [ 71%] tests/env/plugin/test_interface.py::TestDependencies::test_unknown_dynamic_feature PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_not_table PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_name_contains_spaces PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_default PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_single_commands PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_multiple_commands PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_multiple_commands_not_string PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_config_invalid_type PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_basic PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_multiple_nested PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_multiple_nested_ignore_exit_code PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_modification PASSED [ 71%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_circular_inheritance PASSED [ 71%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_default PASSED [ 71%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_not_array PASSED [ 71%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_entry_not_string PASSED [ 71%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_correct PASSED [ 71%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_default PASSED [ 72%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_not_array PASSED [ 72%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_entry_not_string PASSED [ 72%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_correct PASSED [ 72%] tests/env/plugin/test_interface.py::TestEnvVarOption::test_unset PASSED [ 72%] tests/env/plugin/test_interface.py::TestEnvVarOption::test_set PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_name PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_type PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_default PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_unknown_modifier PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment_not_integer PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-9000-command -qqq] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-3-command -qqq] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-2-command -qq] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-1-command -q] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[0-command] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[1-command -v] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[2-command -vv] PASSED [ 72%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[3-command -vvv] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[9000-command -vvv] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-9000-command -qqq] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-3-command -qqq] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-2-command -qq] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-1-command -q] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[0-command] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[1-command -v] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[2-command -vv] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[3-command -vvv] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[9000-command -vvv] PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_undefined PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_default PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_default_override PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_no_selection PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_no_default PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_default PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_default_override PASSED [ 73%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_vars_override PASSED [ 74%] tests/index/test_core.py::TestRepo::test_normalization PASSED [ 74%] tests/index/test_core.py::TestURLs::test_simple[PyPI main] PASSED [ 74%] tests/index/test_core.py::TestURLs::test_simple[PyPI test] PASSED [ 74%] tests/index/test_core.py::TestURLs::test_simple[default] PASSED [ 74%] tests/index/test_core.py::TestURLs::test_project[PyPI main] PASSED [ 74%] tests/index/test_core.py::TestURLs::test_project[PyPI test] PASSED [ 74%] tests/index/test_core.py::TestURLs::test_project[default] PASSED [ 74%] tests/project/test_config.py::TestEnv::test_not_table PASSED [ 74%] tests/project/test_config.py::TestEnv::test_default PASSED [ 74%] tests/project/test_config.py::TestEnvRequires::test_not_array PASSED [ 74%] tests/project/test_config.py::TestEnvRequires::test_requirement_not_string PASSED [ 74%] tests/project/test_config.py::TestEnvRequires::test_requirement_invalid PASSED [ 74%] tests/project/test_config.py::TestEnvRequires::test_default PASSED [ 74%] tests/project/test_config.py::TestEnvRequires::test_defined PASSED [ 74%] tests/project/test_config.py::TestEnvCollectors::test_not_table PASSED [ 74%] tests/project/test_config.py::TestEnvCollectors::test_collector_not_table PASSED [ 74%] tests/project/test_config.py::TestEnvCollectors::test_default PASSED [ 74%] tests/project/test_config.py::TestEnvCollectors::test_defined PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_not_table PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_config_not_table PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_unknown_collector PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_unknown_template PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_default_undefined PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_default_partially_defined PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_default_defined PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_basic PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_basic_override PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_multiple_inheritance PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_circular_inheritance PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_scripts_inheritance PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_self_referential PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_detached PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_matrices_not_array PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_matrix_not_table PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_matrix_empty PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_matrix_variable_empty_string PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_variable_not_array PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_variable_array_empty PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_not_string PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_empty_string PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_duplicate PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_multiple_python_variables PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_name_format_not_string PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_name_format_invalid PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_platform_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_env_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_name_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_platform_entry_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_env_entry_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_entry_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_name_entry_not_table PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_simple_no_python PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_matrix_simple_no_python_custom_name_format PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple_only_python[py] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple_only_python[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple[py] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple_custom_name_format[py] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple_custom_name_format[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_multiple_non_python PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_series PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrices_not_inherited PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_default_naming PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_pypy_naming PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_invalid_type[env-vars] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_invalid_type[scripts] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_entry_invalid_type[env-vars] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_entry_invalid_type[scripts] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_no_key[env-vars] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_no_key[scripts] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_not_string[env-vars] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_not_string[scripts] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_empty_string[env-vars] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_empty_string[scripts] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_value_not_string[env-vars] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_value_not_string[scripts] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_if_not_array[env-vars] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_if_not_array[scripts] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[extra-dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[env-exclude] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[env-include] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[features] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[platforms] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[post-install-commands] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[pre-install-commands] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[extra-dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[env-exclude] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[env-include] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[features] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[platforms] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[post-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[pre-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[dependencies] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[extra-dependencies] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[env-exclude] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[env-include] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[features] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[platforms] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[post-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[pre-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[dependencies] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[extra-dependencies] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[env-exclude] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[env-include] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[features] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[platforms] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[post-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[pre-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[dependencies] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[extra-dependencies] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[env-exclude] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[env-include] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[features] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[platforms] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[post-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[pre-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[dependencies] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[extra-dependencies] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[env-exclude] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[env-include] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[features] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[platforms] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[post-install-commands] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[pre-install-commands] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_invalid_type[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_invalid_type[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_no_value[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_no_value[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_value_not_string[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_value_not_string[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_entry_invalid_type[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_entry_invalid_type[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_no_value[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_no_value[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_value_not_string[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_value_not_string[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_if_not_array[python] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_if_not_array[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_invalid_type[dev-mode] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_invalid_type[skip-install] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_no_value[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_no_value[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_value_not_boolean[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_value_not_boolean[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_entry_invalid_type[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_entry_invalid_type[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_no_value[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_no_value[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_value_not_boolean[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_value_not_boolean[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_if_not_array[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_if_not_array[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_not_array[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_not_array[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_item_not_string[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_item_not_string[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_not_array[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_not_array[skip-install] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_item_not_string[dev-mode] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_item_not_string[skip-install] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_with_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_with_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_without_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_without_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_override[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_override[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_with_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_with_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_without_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_without_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_override[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_override[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_with_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_with_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_without_value[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_without_value[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_override[env-vars] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_override[scripts] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_conditional[env-vars] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_conditional[scripts] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_overwrite[env-vars] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_overwrite[scripts] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[dependencies] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[extra-dependencies] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[env-exclude] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[env-include] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[features] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[platforms] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[post-install-commands] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[pre-install-commands] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[dependencies] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[extra-dependencies] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[env-exclude] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[env-include] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[features] PASSED [ 84%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[platforms] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[post-install-commands] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[pre-install-commands] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[dependencies] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[extra-dependencies] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[env-exclude] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[env-include] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[features] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[platforms] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[post-install-commands] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[pre-install-commands] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[dependencies] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[extra-dependencies] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[env-exclude] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[env-include] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[features] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[platforms] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[post-install-commands] PASSED [ 85%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[pre-install-commands] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[dependencies] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[extra-dependencies] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[env-exclude] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[env-include] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[features] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[platforms] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[post-install-commands] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[pre-install-commands] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[dependencies] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[extra-dependencies] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[env-exclude] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[env-include] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[features] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[platforms] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[post-install-commands] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[pre-install-commands] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[dependencies] PASSED [ 86%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[extra-dependencies] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[env-exclude] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[env-include] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[features] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[platforms] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[post-install-commands] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[pre-install-commands] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[dependencies] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[extra-dependencies] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[env-exclude] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[env-include] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[features] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[platforms] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[post-install-commands] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[pre-install-commands] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[dependencies] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[extra-dependencies] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[env-exclude] PASSED [ 87%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[env-include] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[features] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[platforms] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[post-install-commands] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[pre-install-commands] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[dependencies] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[extra-dependencies] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[env-exclude] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[env-include] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[features] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[platforms] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[post-install-commands] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[pre-install-commands] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[dependencies] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[extra-dependencies] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[env-exclude] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[env-include] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[features] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[platforms] PASSED [ 88%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[post-install-commands] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[pre-install-commands] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[dependencies] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[extra-dependencies] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[env-exclude] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[env-include] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[features] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[platforms] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[post-install-commands] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[pre-install-commands] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_set_with_no_type_information PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_set_with_no_type_information_not_table PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[dependencies] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[extra-dependencies] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[env-exclude] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[env-include] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[features] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[platforms] PASSED [ 89%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[post-install-commands] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[pre-install-commands] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_create[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_create[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_overwrite[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_overwrite[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_create[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_create[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_override[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_override[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_conditional[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_conditional[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_create[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_create[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_override[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_override[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional[python] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional[type] PASSED [ 90%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_string[python] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_string[type] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_table[python] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_table[type] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_create[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_create[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_overwrite[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_overwrite[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_create[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_create[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_override[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_override[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_conditional[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_conditional[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_create[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_create[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_override[dev-mode] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_override[skip-install] PASSED [ 91%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional[dev-mode] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional[skip-install] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_boolean[dev-mode] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_boolean[skip-install] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_table[dev-mode] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_table[skip-install] PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_boolean_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_boolean_overwrite PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_table_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_table_overwrite PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_boolean_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_boolean_overwrite PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_table_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_table_overwrite PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_conditional PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_boolean_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_boolean_overwrite PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_table_create PASSED [ 92%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_table_overwrite PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_overrides_name_precedence_over_matrix PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_precedence_over_platform PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_precedence_over_env PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_overrides_env_precedence_over_platform PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_overrides_for_environment_plugins PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_environment_collector_finalize_config PASSED [ 93%] tests/project/test_config.py::TestEnvs::test_environment_collector_finalize_environments PASSED [ 93%] tests/project/test_config.py::TestPublish::test_not_table PASSED [ 93%] tests/project/test_config.py::TestPublish::test_config_not_table PASSED [ 93%] tests/project/test_config.py::TestPublish::test_default PASSED [ 93%] tests/project/test_config.py::TestPublish::test_defined PASSED [ 93%] tests/project/test_config.py::TestScripts::test_not_table PASSED [ 93%] tests/project/test_config.py::TestScripts::test_name_contains_spaces PASSED [ 93%] tests/project/test_config.py::TestScripts::test_default PASSED [ 93%] tests/project/test_config.py::TestScripts::test_single_commands PASSED [ 93%] tests/project/test_config.py::TestScripts::test_multiple_commands PASSED [ 93%] tests/project/test_config.py::TestScripts::test_multiple_commands_not_string PASSED [ 93%] tests/project/test_config.py::TestScripts::test_config_invalid_type PASSED [ 94%] tests/project/test_config.py::TestScripts::test_command_expansion_basic PASSED [ 94%] tests/project/test_config.py::TestScripts::test_command_expansion_multiple_nested PASSED [ 94%] tests/project/test_config.py::TestScripts::test_command_expansion_multiple_nested_ignore_exit_code PASSED [ 94%] tests/project/test_config.py::TestScripts::test_command_expansion_modification PASSED [ 94%] tests/project/test_config.py::TestScripts::test_command_expansion_circular_inheritance PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_no_project PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_direct[pyproject.toml] PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_direct[setup.py] PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_recurse[pyproject.toml] PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_recurse[setup.py] PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_no_path[pyproject.toml] PASSED [ 94%] tests/project/test_core.py::TestFindProjectRoot::test_no_path[setup.py] PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_no_project_no_project_dirs PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_empty_string PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_basic_string PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_complex PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_complex_null_location PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs PASSED [ 94%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs_null_dir PASSED [ 95%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs_not_directory PASSED [ 95%] tests/project/test_core.py::TestChosenName::test_selected PASSED [ 95%] tests/project/test_core.py::TestChosenName::test_cwd PASSED [ 95%] tests/project/test_core.py::TestLocation::test_no_project PASSED [ 95%] tests/project/test_core.py::TestLocation::test_project[pyproject.toml] PASSED [ 95%] tests/project/test_core.py::TestLocation::test_project[setup.py] PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_default PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_config PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_config_not_boolean PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_plugin_config PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_plugin_config_not_boolean PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_config_overrides_plugin_config PASSED [ 95%] tests/python/test_core.py::test_installation[3.7] FAILED [ 95%] tests/python/test_core.py::test_installation[3.8] FAILED [ 95%] tests/python/test_core.py::test_installation[3.9] FAILED [ 95%] tests/python/test_core.py::test_installation[3.10] FAILED [ 95%] tests/python/test_core.py::test_installation[3.11] FAILED [ 95%] tests/python/test_core.py::test_installation[3.12] FAILED [ 96%] tests/python/test_core.py::test_installation[pypy2.7] FAILED [ 96%] tests/python/test_core.py::test_installation[pypy3.9] FAILED [ 96%] tests/python/test_core.py::test_installation[pypy3.10] FAILED [ 96%] tests/python/test_core.py::TestGetInstalled::test_source_does_not_exist PASSED [ 96%] tests/python/test_core.py::TestGetInstalled::test_not_a_directory FAILED [ 96%] tests/python/test_core.py::TestGetInstalled::test_no_metadata_file FAILED [ 96%] tests/python/test_core.py::TestGetInstalled::test_no_python_path FAILED [ 96%] tests/python/test_core.py::TestGetInstalled::test_order PASSED [ 96%] tests/python/test_resolve.py::TestErrors::test_unknown_distribution PASSED [ 96%] tests/python/test_resolve.py::TestErrors::test_resolution_error PASSED [ 96%] tests/python/test_resolve.py::TestDistributionVersions::test_cpython_standalone PASSED [ 96%] tests/python/test_resolve.py::TestDistributionVersions::test_pypy PASSED [ 96%] tests/python/test_resolve.py::test_variants[windows-shared] SKIPPED [ 96%] tests/python/test_resolve.py::test_variants[windows-static] SKIPPED [ 96%] tests/python/test_resolve.py::test_variants[linux-v1] FAILED [ 96%] tests/python/test_resolve.py::test_variants[linux-v2] FAILED [ 96%] tests/python/test_resolve.py::test_variants[linux-v3] FAILED [ 96%] tests/python/test_resolve.py::test_variants[linux-v4] FAILED [ 97%] tests/utils/test_fs.py::TestPath::test_type PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_resolve_relative_non_existent PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_ensure_dir_exists PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_ensure_parent_dir_exists PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_as_cwd PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_as_cwd_env_vars PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_remove_file PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_remove_directory PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_remove_non_existent PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_temp_hide_file PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_temp_hide_dir PASSED [ 97%] tests/utils/test_fs.py::TestPath::test_temp_hide_non_existent PASSED [ 97%] tests/utils/test_fs.py::test_temp_directory PASSED [ 97%] tests/utils/test_fs.py::test_temp_chdir PASSED [ 97%] tests/utils/test_platform.py::TestWindows::test_tag SKIPPED (Not running on Windows) [ 97%] tests/utils/test_platform.py::TestWindows::test_default_shell SKIPPED [ 97%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_list SKIPPED [ 97%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_list_shell SKIPPED [ 98%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_string SKIPPED [ 98%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_string_shell SKIPPED [ 98%] tests/utils/test_platform.py::TestWindows::test_home SKIPPED (Not running on Windows) [ 98%] tests/utils/test_platform.py::TestWindows::test_populate_default_popen_kwargs_executable SKIPPED [ 98%] tests/utils/test_platform.py::TestMacOS::test_tag SKIPPED (Not running on macOS) [ 98%] tests/utils/test_platform.py::TestMacOS::test_default_shell SKIPPED (Not running on macOS) [ 98%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_list SKIPPED [ 98%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_list_shell SKIPPED [ 98%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_string SKIPPED [ 98%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_string_shell SKIPPED [ 98%] tests/utils/test_platform.py::TestMacOS::test_home SKIPPED (Not running on macOS) [ 98%] tests/utils/test_platform.py::TestMacOS::test_populate_default_popen_kwargs_executable SKIPPED [ 98%] tests/utils/test_platform.py::TestLinux::test_tag PASSED [ 98%] tests/utils/test_platform.py::TestLinux::test_default_shell PASSED [ 98%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_list PASSED [ 98%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_list_shell PASSED [ 98%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_string PASSED [ 98%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_string_shell PASSED [ 99%] tests/utils/test_platform.py::TestLinux::test_home PASSED [ 99%] tests/utils/test_platform.py::TestLinux::test_populate_default_popen_kwargs_executable PASSED [ 99%] tests/utils/test_structures.py::TestEnvVars::test_restoration PASSED [ 99%] tests/utils/test_structures.py::TestEnvVars::test_set PASSED [ 99%] tests/utils/test_structures.py::TestEnvVars::test_include PASSED [ 99%] tests/utils/test_structures.py::TestEnvVars::test_exclude PASSED [ 99%] tests/utils/test_structures.py::TestEnvVars::test_precedence PASSED [ 99%] tests/venv/test_core.py::test_initialization_does_not_create PASSED [ 99%] tests/venv/test_core.py::test_remove_non_existent_no_error PASSED [ 99%] tests/venv/test_core.py::test_creation PASSED [ 99%] tests/venv/test_core.py::test_executables_directory PASSED [ 99%] tests/venv/test_core.py::test_activation PASSED [ 99%] tests/venv/test_core.py::test_activation_path_env_var_missing PASSED [ 99%] tests/venv/test_core.py::test_context_manager PASSED [ 99%] tests/venv/test_core.py::test_creation_allow_system_packages PASSED [ 99%] tests/venv/test_core.py::test_python_data PASSED [ 99%] tests/venv/test_utils.py::TestGetRandomVenvName::test_length PASSED [ 99%] tests/venv/test_utils.py::TestGetRandomVenvName::test_different PASSED [100%] ==================================== ERRORS ==================================== ________________________ ERROR at setup of test_binary _________________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ________________________ ERROR at setup of test_parent _________________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError __________________ ERROR at setup of test_incompatible_single __________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError _______________ ERROR at setup of test_already_installed_latest ________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________ ERROR at setup of test_already_installed_update_disabled ___________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ____________ ERROR at setup of test_already_installed_update_prompt ____________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError _____________ ERROR at setup of test_already_installed_update_flag _____________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________ ERROR at setup of test_already_in_path[in_current_path] ____________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError _____________ ERROR at setup of test_already_in_path[in_new_path] ______________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ________________________ ERROR at setup of test_private ________________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________________ ERROR at setup of test_specific_location ___________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________________ ERROR at setup of test_specific_location ___________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ____________________ ERROR at setup of test_some_installed _____________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________________ ERROR at setup of test_specific_location ___________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError _______________________ ERROR at setup of test_outdated ________________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError _________________________ ERROR at setup of test_basic _________________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________________ ERROR at setup of test_specific_location ___________________ compatible_python_distributions = () @pytest.fixture def dist_name(compatible_python_distributions): > return secrets.choice(compatible_python_distributions) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/conftest.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = () def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ________________ ERROR at setup of test_install_python_specific ________________ @pytest.fixture(scope='module') def available_python_version(): compatible_distributions = get_compatible_distributions() current_version = f'{sys.version_info.major}.{sys.version_info.minor}' if current_version in compatible_distributions: return current_version versions = [d for d in get_compatible_distributions() if not d.startswith('pypy')] > return versions[-1] E IndexError: list index out of range /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/run/test_run.py:23: IndexError ________________ ERROR at setup of test_update_python_specific _________________ @pytest.fixture(scope='module') def available_python_version(): compatible_distributions = get_compatible_distributions() current_version = f'{sys.version_info.major}.{sys.version_info.minor}' if current_version in compatible_distributions: return current_version versions = [d for d in get_compatible_distributions() if not d.startswith('pypy')] > return versions[-1] E IndexError: list index out of range /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/run/test_run.py:23: IndexError _____________ ERROR at setup of test_install_python_max_compatible _____________ @pytest.fixture(scope='module') def available_python_version(): compatible_distributions = get_compatible_distributions() current_version = f'{sys.version_info.major}.{sys.version_info.minor}' if current_version in compatible_distributions: return current_version versions = [d for d in get_compatible_distributions() if not d.startswith('pypy')] > return versions[-1] E IndexError: list index out of range /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/run/test_run.py:23: IndexError _____________ ERROR at setup of test_update_python_max_compatible ______________ @pytest.fixture(scope='module') def available_python_version(): compatible_distributions = get_compatible_distributions() current_version = f'{sys.version_info.major}.{sys.version_info.minor}' if current_version in compatible_distributions: return current_version versions = [d for d in get_compatible_distributions() if not d.startswith('pypy')] > return versions[-1] E IndexError: list index out of range /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/run/test_run.py:23: IndexError ________ ERROR at setup of test_python_installation_with_metadata_hook _________ @pytest.fixture(scope='module') def available_python_version(): compatible_distributions = get_compatible_distributions() current_version = f'{sys.version_info.major}.{sys.version_info.minor}' if current_version in compatible_distributions: return current_version versions = [d for d in get_compatible_distributions() if not d.startswith('pypy')] > return versions[-1] E IndexError: list index out of range /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/run/test_run.py:23: IndexError =================================== FAILURES =================================== ______________________________ test_installation _______________________________ hatch = helpers = temp_dir_data = Path('/tmp/tmp__t8boea') platform = path_append = default_shells = ['bash'], compatible_python_distributions = () @pytest.mark.requires_internet def test_installation( hatch, helpers, temp_dir_data, platform, path_append, default_shells, compatible_python_distributions ): selection = [name for name in compatible_python_distributions if not name.startswith('pypy')] > dist_name = secrets.choice(selection) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_install.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , seq = [] def choice(self, seq): """Choose a random element from a non-empty sequence.""" # As an accommodation for NumPy, we don't use "if not seq" # because bool(numpy.array()) raises a ValueError. if not len(seq): > raise IndexError('Cannot choose from an empty sequence') E IndexError: Cannot choose from an empty sequence /usr/lib/python3.11/random.py:373: IndexError ___________________________________ test_all ___________________________________ hatch = temp_dir_data = Path('/tmp/tmp3iit_p0f') path_append = default_shells = ['bash'] mocker = compatible_python_distributions = () def test_all(hatch, temp_dir_data, path_append, default_shells, mocker, compatible_python_distributions): mocked_dists = [] for name in compatible_python_distributions: dist_dir = temp_dir_data / 'data' / 'pythons' / name python_path = dist_dir / get_distribution(name).python_path mocked_dists.append(mocker.MagicMock(path=dist_dir, python_path=python_path)) install = mocker.patch('hatch.python.core.PythonManager.install', side_effect=mocked_dists) result = hatch('python', 'install', 'all') > assert result.exit_code == 0, result.output E AssertionError: Incompatible distributions: 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, pypy2.7, pypy3.9, pypy3.10 E E assert 1 == 0 E + where 1 = .exit_code /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_install.py:271: AssertionError __________________________________ test_basic __________________________________ hatch = helpers = temp_dir_data = Path('/tmp/tmptkgp4e0k') def test_basic(hatch, helpers, temp_dir_data): install_dir = temp_dir_data / 'data' / 'pythons' for name in ('3.9', '3.10'): > helpers.write_distribution(install_dir, name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_remove.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/tests/helpers/helpers.py:124: in write_distribution dist = get_distribution(name) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.9', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.9' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________________ test_all ___________________________________ hatch = helpers = temp_dir_data = Path('/tmp/tmp17t4fukg') def test_all(hatch, helpers, temp_dir_data): installed_distributions = ('3.9', '3.10', '3.11') for name in installed_distributions: install_dir = temp_dir_data / 'data' / 'pythons' > helpers.write_distribution(install_dir, name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_remove.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/tests/helpers/helpers.py:124: in write_distribution dist = get_distribution(name) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.9', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.9' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________________ test_nothing_installed ____________________________ hatch = def test_nothing_installed(hatch): compatible_distributions = get_compatible_distributions() available_table = render_table( 'Available', [ ['Name', 'Version'], *[[d.name, d.version.base_version] for d in compatible_distributions.values()], ], ) result = hatch('python', 'show', '--ascii') assert result.exit_code == 0, result.output > assert result.output == available_table E AssertionError: assert '' == ' Available \n+------+---------+\n| Name | Version |\n+======+=========+\n+------+---------+\n' E E - Available E - +------+---------+ E - | Name | Version | E - +======+=========+ E - +------+---------+ /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_show.py:37: AssertionError ______________________________ test_all_installed ______________________________ hatch = helpers = temp_dir_data = Path('/tmp/tmpd9gr73q3') def test_all_installed(hatch, helpers, temp_dir_data): install_dir = temp_dir_data / 'data' / 'pythons' compatible_distributions = get_compatible_distributions() for dist_name in compatible_distributions: helpers.write_distribution(install_dir, dist_name) installed_table = render_table( 'Installed', [ ['Name', 'Version'], *[[d.name, d.version.base_version] for d in compatible_distributions.values()], ], ) result = hatch('python', 'show', '--ascii') assert result.exit_code == 0, result.output > assert result.output == installed_table E AssertionError: assert '' == ' Installed \n+------+---------+\n| Name | Version |\n+======+=========+\n+------+---------+\n' E E - Installed E - +------+---------+ E - | Name | Version | E - +======+=========+ E - +------+---------+ /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_show.py:84: AssertionError ___________________________________ test_all ___________________________________ hatch = helpers = temp_dir_data = Path('/tmp/tmpm4vql_px') path_append = mocker = def test_all(hatch, helpers, temp_dir_data, path_append, mocker): installed_distributions = ('3.9', '3.10', '3.11') mocked_dists = [] for name in installed_distributions: install_dir = temp_dir_data / 'data' / 'pythons' > helpers.write_distribution(install_dir, name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/cli/python/test_update.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/tests/helpers/helpers.py:124: in write_distribution dist = get_distribution(name) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.9', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.9' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________________ test_installation[3.7] ____________________________ temp_dir = Path('/tmp/tmpxk9m6une') platform = , name = '3.7' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.7', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.7' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________________ test_installation[3.8] ____________________________ temp_dir = Path('/tmp/tmps2e08eqt') platform = , name = '3.8' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.8', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.8' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________________ test_installation[3.9] ____________________________ temp_dir = Path('/tmp/tmp6tgw_vq3') platform = , name = '3.9' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.9', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.9' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_installation[3.10] ____________________________ temp_dir = Path('/tmp/tmp_qnajwiq') platform = , name = '3.10' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.10', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.10' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_installation[3.11] ____________________________ temp_dir = Path('/tmp/tmpjhimzwm_') platform = , name = '3.11' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.11', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.11' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_installation[3.12] ____________________________ temp_dir = Path('/tmp/tmptrcvvdfl') platform = , name = '3.12' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.12', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.12' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError __________________________ test_installation[pypy2.7] __________________________ temp_dir = Path('/tmp/tmpl_oxqa1x') platform = name = 'pypy2.7' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'pypy2.7', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='pypy2.7' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError __________________________ test_installation[pypy3.9] __________________________ temp_dir = Path('/tmp/tmpbrfz9tis') platform = name = 'pypy3.9' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'pypy3.9', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='pypy3.9' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError _________________________ test_installation[pypy3.10] __________________________ temp_dir = Path('/tmp/tmp_hu9690j') platform = name = 'pypy3.10' @pytest.mark.requires_internet @pytest.mark.parametrize('name', ORDERED_DISTRIBUTIONS) def test_installation(temp_dir, platform, name): # Ensure the source and any parent directories get created manager = PythonManager(temp_dir / 'foo' / 'bar') > dist = manager.install(name) /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/core.py:87: in install dist = get_distribution(identifier) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'pypy3.10', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='pypy3.10' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________ TestGetInstalled.test_not_a_directory _____________________ self = temp_dir = Path('/tmp/tmppe8jikd9') def test_not_a_directory(self, temp_dir): manager = PythonManager(temp_dir) > dist = get_distribution('3.10') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.10', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.10' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ____________________ TestGetInstalled.test_no_metadata_file ____________________ self = temp_dir = Path('/tmp/tmpb4d9rrcn') def test_no_metadata_file(self, temp_dir): manager = PythonManager(temp_dir) > dist = get_distribution('3.10') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.10', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.10' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError _____________________ TestGetInstalled.test_no_python_path _____________________ self = temp_dir = Path('/tmp/tmpflzg964h') def test_no_python_path(self, temp_dir): manager = PythonManager(temp_dir) > dist = get_distribution('3.10') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_core.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.10', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.10' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_variants[linux-v1] ____________________________ platform = system = 'linux', variant = 'v1', current_arch = 'riscv64' @pytest.mark.parametrize( ('system', 'variant'), [ ('windows', 'shared'), ('windows', 'static'), ('linux', 'v1'), ('linux', 'v2'), ('linux', 'v3'), ('linux', 'v4'), ], ) def test_variants(platform, system, variant, current_arch): if platform.name != system: pytest.skip(f'Skipping test for: {system}') with EnvVars({f'HATCH_PYTHON_VARIANT_{system.upper()}': variant}): > dist = get_distribution('3.11') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_resolve.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.11', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.11' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_variants[linux-v2] ____________________________ platform = system = 'linux', variant = 'v2', current_arch = 'riscv64' @pytest.mark.parametrize( ('system', 'variant'), [ ('windows', 'shared'), ('windows', 'static'), ('linux', 'v1'), ('linux', 'v2'), ('linux', 'v3'), ('linux', 'v4'), ], ) def test_variants(platform, system, variant, current_arch): if platform.name != system: pytest.skip(f'Skipping test for: {system}') with EnvVars({f'HATCH_PYTHON_VARIANT_{system.upper()}': variant}): > dist = get_distribution('3.11') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_resolve.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.11', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.11' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_variants[linux-v3] ____________________________ platform = system = 'linux', variant = 'v3', current_arch = 'riscv64' @pytest.mark.parametrize( ('system', 'variant'), [ ('windows', 'shared'), ('windows', 'static'), ('linux', 'v1'), ('linux', 'v2'), ('linux', 'v3'), ('linux', 'v4'), ], ) def test_variants(platform, system, variant, current_arch): if platform.name != system: pytest.skip(f'Skipping test for: {system}') with EnvVars({f'HATCH_PYTHON_VARIANT_{system.upper()}': variant}): > dist = get_distribution('3.11') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_resolve.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.11', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.11' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError ___________________________ test_variants[linux-v4] ____________________________ platform = system = 'linux', variant = 'v4', current_arch = 'riscv64' @pytest.mark.parametrize( ('system', 'variant'), [ ('windows', 'shared'), ('windows', 'static'), ('linux', 'v1'), ('linux', 'v2'), ('linux', 'v3'), ('linux', 'v4'), ], ) def test_variants(platform, system, variant, current_arch): if platform.name != system: pytest.skip(f'Skipping test for: {system}') with EnvVars({f'HATCH_PYTHON_VARIANT_{system.upper()}': variant}): > dist = get_distribution('3.11') /build/python-hatch/src/hatch-hatch-v1.9.3/tests/python/test_resolve.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = '3.11', source = '', variant = '' def get_distribution(name: str, source: str = '', variant: str = '') -> Distribution: if source: return _get_distribution_class(source)(name, source) if name not in DISTRIBUTIONS: message = f'Unknown distribution: {name}' raise PythonDistributionUnknownError(message) arch = platform.machine().lower() if sys.platform == 'win32': system = 'windows' abi = 'msvc' elif sys.platform == 'darwin': system = 'macos' abi = '' else: system = 'linux' abi = 'gnu' if any(platform.libc_ver()) else 'musl' if not variant: variant = _get_default_variant(name, system, arch, abi) key = (system, arch, abi, variant) keys: dict[tuple, str] = DISTRIBUTIONS[name] if key not in keys: message = f'Could not find a default source for {name=} {system=} {arch=} {abi=} {variant=}' > raise PythonDistributionResolutionError(message) E hatch.errors.PythonDistributionResolutionError: Could not find a default source for name='3.11' system='linux' arch='riscv64' abi='gnu' variant='' /build/python-hatch/src/hatch-hatch-v1.9.3/test_dir/usr/lib/python3.11/site-packages/hatch/python/resolve.py:153: PythonDistributionResolutionError =========================== short test summary info ============================ FAILED tests/cli/python/test_install.py::test_installation - IndexError: Cann... FAILED tests/cli/python/test_install.py::test_all - AssertionError: Incompati... FAILED tests/cli/python/test_remove.py::test_basic - hatch.errors.PythonDistr... FAILED tests/cli/python/test_remove.py::test_all - hatch.errors.PythonDistrib... FAILED tests/cli/python/test_show.py::test_nothing_installed - AssertionError... FAILED tests/cli/python/test_show.py::test_all_installed - AssertionError: as... FAILED tests/cli/python/test_update.py::test_all - hatch.errors.PythonDistrib... FAILED tests/python/test_core.py::test_installation[3.7] - hatch.errors.Pytho... FAILED tests/python/test_core.py::test_installation[3.8] - hatch.errors.Pytho... FAILED tests/python/test_core.py::test_installation[3.9] - hatch.errors.Pytho... FAILED tests/python/test_core.py::test_installation[3.10] - hatch.errors.Pyth... FAILED tests/python/test_core.py::test_installation[3.11] - hatch.errors.Pyth... FAILED tests/python/test_core.py::test_installation[3.12] - hatch.errors.Pyth... FAILED tests/python/test_core.py::test_installation[pypy2.7] - hatch.errors.P... FAILED tests/python/test_core.py::test_installation[pypy3.9] - hatch.errors.P... FAILED tests/python/test_core.py::test_installation[pypy3.10] - hatch.errors.... FAILED tests/python/test_core.py::TestGetInstalled::test_not_a_directory - ha... FAILED tests/python/test_core.py::TestGetInstalled::test_no_metadata_file - h... FAILED tests/python/test_core.py::TestGetInstalled::test_no_python_path - hat... FAILED tests/python/test_resolve.py::test_variants[linux-v1] - hatch.errors.P... FAILED tests/python/test_resolve.py::test_variants[linux-v2] - hatch.errors.P... FAILED tests/python/test_resolve.py::test_variants[linux-v3] - hatch.errors.P... FAILED tests/python/test_resolve.py::test_variants[linux-v4] - hatch.errors.P... ERROR tests/cli/python/test_find.py::test_binary - IndexError: Cannot choose ... ERROR tests/cli/python/test_find.py::test_parent - IndexError: Cannot choose ... ERROR tests/cli/python/test_install.py::test_incompatible_single - IndexError... ERROR tests/cli/python/test_install.py::test_already_installed_latest - Index... ERROR tests/cli/python/test_install.py::test_already_installed_update_disabled ERROR tests/cli/python/test_install.py::test_already_installed_update_prompt ERROR tests/cli/python/test_install.py::test_already_installed_update_flag - ... ERROR tests/cli/python/test_install.py::test_already_in_path[in_current_path] ERROR tests/cli/python/test_install.py::test_already_in_path[in_new_path] - I... ERROR tests/cli/python/test_install.py::test_private - IndexError: Cannot cho... ERROR tests/cli/python/test_install.py::test_specific_location - IndexError: ... ERROR tests/cli/python/test_remove.py::test_specific_location - IndexError: C... ERROR tests/cli/python/test_show.py::test_some_installed - IndexError: Cannot... ERROR tests/cli/python/test_show.py::test_specific_location - IndexError: Can... ERROR tests/cli/python/test_show.py::test_outdated - IndexError: Cannot choos... ERROR tests/cli/python/test_update.py::test_basic - IndexError: Cannot choose... ERROR tests/cli/python/test_update.py::test_specific_location - IndexError: C... ERROR tests/cli/run/test_run.py::test_install_python_specific - IndexError: l... ERROR tests/cli/run/test_run.py::test_update_python_specific - IndexError: li... ERROR tests/cli/run/test_run.py::test_install_python_max_compatible - IndexEr... ERROR tests/cli/run/test_run.py::test_update_python_max_compatible - IndexErr... ERROR tests/cli/run/test_run.py::test_python_installation_with_metadata_hook = 23 failed, 1734 passed, 38 skipped, 93 deselected, 22 errors in 1937.50s (0:32:17) = ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix34/build [?25h[?25hreceiving incremental file list python-hatch-1.9.3-1-riscv64-build.log python-hatch-1.9.3-1-riscv64-check.log sent 62 bytes received 18,285 bytes 7,338.80 bytes/sec total size is 246,734 speedup is 13.45