Mock Version: 3.5 Mock Version: 3.5 Mock Version: 3.5 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Wrote: /builddir/build/SRPMS/hatch-1.7.0-3.an23.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Ra1IHx + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf hatch-hatch-v1.7.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/hatch-v1.7.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd hatch-hatch-v1.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/1b10663e645efd6f37d616c5de34451dc2e015c0.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.3wjL8v + umask 022 + cd /builddir/build/BUILD + cd hatch-hatch-v1.7.0 + /builddir/build/SOURCES/extract-hatchling-environments -v Created /builddir/build/BUILD/hatch-hatch-v1.7.0/_req Wrote env.default.txt with 9 dependencies Wrote env.test.txt with 9 dependencies Wrote env.coverage.txt with 2 dependencies Wrote env.lint.txt with 3 dependencies Wrote env.docs.txt with 12 dependencies Wrote env.backend.txt with 2 dependencies Wrote env.release.txt with 0 dependencies + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires _req/env.test.txt Handling coverage[toml]>=6.2 from requirements file _req/env.test.txt Requirement not satisfied: coverage[toml]>=6.2 Handling filelock>=3.7.1 from requirements file _req/env.test.txt Requirement not satisfied: filelock>=3.7.1 Handling pytest from requirements file _req/env.test.txt Requirement not satisfied: pytest Handling pytest-cov from requirements file _req/env.test.txt Requirement not satisfied: pytest-cov Handling pytest-mock from requirements file _req/env.test.txt Requirement not satisfied: pytest-mock Handling pytest-randomly from requirements file _req/env.test.txt Requirement not satisfied: pytest-randomly Handling pytest-rerunfailures from requirements file _req/env.test.txt Requirement not satisfied: pytest-rerunfailures Handling pytest-xdist from requirements file _req/env.test.txt Requirement not satisfied: pytest-xdist Handling trustme from requirements file _req/env.test.txt Requirement not satisfied: trustme Exiting dependency generation pass: all requirements files + cat /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/hatch-1.7.0-3.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.v6Gh6i + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf hatch-hatch-v1.7.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/hatch-v1.7.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd hatch-hatch-v1.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/1b10663e645efd6f37d616c5de34451dc2e015c0.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.yvoQwD + umask 022 + cd /builddir/build/BUILD + cd hatch-hatch-v1.7.0 + /builddir/build/SOURCES/extract-hatchling-environments -v Created /builddir/build/BUILD/hatch-hatch-v1.7.0/_req Wrote env.default.txt with 9 dependencies Wrote env.test.txt with 9 dependencies Wrote env.coverage.txt with 2 dependencies Wrote env.lint.txt with 3 dependencies Wrote env.docs.txt with 12 dependencies Wrote env.backend.txt with 2 dependencies Wrote env.release.txt with 0 dependencies + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires _req/env.test.txt Handling coverage[toml]>=6.2 from requirements file _req/env.test.txt Requirement satisfied: coverage[toml]>=6.2 (installed: coverage 7.2.1) (extras are currently not checked) Handling filelock>=3.7.1 from requirements file _req/env.test.txt Requirement satisfied: filelock>=3.7.1 (installed: filelock 3.9.0) Handling pytest from requirements file _req/env.test.txt Requirement satisfied: pytest (installed: pytest 7.3.1) Handling pytest-cov from requirements file _req/env.test.txt Requirement satisfied: pytest-cov (installed: pytest-cov 4.0.0) Handling pytest-mock from requirements file _req/env.test.txt Requirement satisfied: pytest-mock (installed: pytest-mock 3.6.1) Handling pytest-randomly from requirements file _req/env.test.txt Requirement satisfied: pytest-randomly (installed: pytest-randomly 3.12.0) Handling pytest-rerunfailures from requirements file _req/env.test.txt Requirement satisfied: pytest-rerunfailures (installed: pytest-rerunfailures 11.0) Handling pytest-xdist from requirements file _req/env.test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.2.1) Handling trustme from requirements file _req/env.test.txt Requirement satisfied: trustme (installed: trustme 0.9.0) Handling hatchling>=1.14.0 from build-system.requires Requirement not satisfied: hatchling>=1.14.0 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/hatch-1.7.0-3.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Zv3ZLj + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf hatch-hatch-v1.7.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/hatch-v1.7.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd hatch-hatch-v1.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/1b10663e645efd6f37d616c5de34451dc2e015c0.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.lVwVIs + umask 022 + cd /builddir/build/BUILD + cd hatch-hatch-v1.7.0 + /builddir/build/SOURCES/extract-hatchling-environments -v Created /builddir/build/BUILD/hatch-hatch-v1.7.0/_req Wrote env.default.txt with 9 dependencies Wrote env.test.txt with 9 dependencies Wrote env.coverage.txt with 2 dependencies Wrote env.lint.txt with 3 dependencies Wrote env.docs.txt with 12 dependencies Wrote env.backend.txt with 2 dependencies Wrote env.release.txt with 0 dependencies + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires _req/env.test.txt Handling coverage[toml]>=6.2 from requirements file _req/env.test.txt Requirement satisfied: coverage[toml]>=6.2 (installed: coverage 7.2.1) (extras are currently not checked) Handling filelock>=3.7.1 from requirements file _req/env.test.txt Requirement satisfied: filelock>=3.7.1 (installed: filelock 3.9.0) Handling pytest from requirements file _req/env.test.txt Requirement satisfied: pytest (installed: pytest 7.3.1) Handling pytest-cov from requirements file _req/env.test.txt Requirement satisfied: pytest-cov (installed: pytest-cov 4.0.0) Handling pytest-mock from requirements file _req/env.test.txt Requirement satisfied: pytest-mock (installed: pytest-mock 3.6.1) Handling pytest-randomly from requirements file _req/env.test.txt Requirement satisfied: pytest-randomly (installed: pytest-randomly 3.12.0) Handling pytest-rerunfailures from requirements file _req/env.test.txt Requirement satisfied: pytest-rerunfailures (installed: pytest-rerunfailures 11.0) Handling pytest-xdist from requirements file _req/env.test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.2.1) Handling trustme from requirements file _req/env.test.txt Requirement satisfied: trustme (installed: trustme 0.9.0) Handling hatchling>=1.14.0 from build-system.requires Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling click>=8.0.3 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: click>=8.0.3 Handling hatchling>=1.14.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling httpx>=0.22.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: httpx>=0.22.0 Handling hyperlink>=21.0.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: hyperlink>=21.0.0 Handling keyring>=23.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: keyring>=23.5.0 Handling packaging>=21.3 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: packaging>=21.3 (installed: packaging 23.0) Handling pexpect~=4.8 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: pexpect~=4.8 Handling platformdirs>=2.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: platformdirs>=2.5.0 Handling pyperclip>=1.8.2 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: pyperclip>=1.8.2 Handling rich>=11.2.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: rich>=11.2.0 Handling shellingham>=1.4.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: shellingham>=1.4.0 Handling tomli-w>=1.0 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: tomli-w>=1.0 Handling tomlkit>=0.11.1 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: tomlkit>=0.11.1 Handling userpath~=1.7 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: userpath~=1.7 Handling virtualenv>=20.16.2 from hook generated metadata: Requires-Dist (hatch) Requirement not satisfied: virtualenv>=20.16.2 + cat /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires + rm -rfv hatch-1.7.0.dist-info/ removed 'hatch-1.7.0.dist-info/METADATA' removed directory 'hatch-1.7.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/hatch-1.7.0-3.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.zqlHdb + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf hatch-hatch-v1.7.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/hatch-v1.7.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd hatch-hatch-v1.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/1b10663e645efd6f37d616c5de34451dc2e015c0.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.8Y3ecX + umask 022 + cd /builddir/build/BUILD + cd hatch-hatch-v1.7.0 + /builddir/build/SOURCES/extract-hatchling-environments -v Created /builddir/build/BUILD/hatch-hatch-v1.7.0/_req Wrote env.default.txt with 9 dependencies Wrote env.test.txt with 9 dependencies Wrote env.coverage.txt with 2 dependencies Wrote env.lint.txt with 3 dependencies Wrote env.docs.txt with 12 dependencies Wrote env.backend.txt with 2 dependencies Wrote env.release.txt with 0 dependencies + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires _req/env.test.txt Handling coverage[toml]>=6.2 from requirements file _req/env.test.txt Requirement satisfied: coverage[toml]>=6.2 (installed: coverage 7.2.1) (extras are currently not checked) Handling filelock>=3.7.1 from requirements file _req/env.test.txt Requirement satisfied: filelock>=3.7.1 (installed: filelock 3.9.0) Handling pytest from requirements file _req/env.test.txt Requirement satisfied: pytest (installed: pytest 7.3.1) Handling pytest-cov from requirements file _req/env.test.txt Requirement satisfied: pytest-cov (installed: pytest-cov 4.0.0) Handling pytest-mock from requirements file _req/env.test.txt Requirement satisfied: pytest-mock (installed: pytest-mock 3.6.1) Handling pytest-randomly from requirements file _req/env.test.txt Requirement satisfied: pytest-randomly (installed: pytest-randomly 3.12.0) Handling pytest-rerunfailures from requirements file _req/env.test.txt Requirement satisfied: pytest-rerunfailures (installed: pytest-rerunfailures 11.0) Handling pytest-xdist from requirements file _req/env.test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.2.1) Handling trustme from requirements file _req/env.test.txt Requirement satisfied: trustme (installed: trustme 0.9.0) Handling hatchling>=1.14.0 from build-system.requires Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling click>=8.0.3 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: click>=8.0.3 (installed: click 8.1.3) Handling hatchling>=1.14.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling httpx>=0.22.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: httpx>=0.22.0 (installed: httpx 0.23.0) Handling hyperlink>=21.0.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: hyperlink>=21.0.0 (installed: hyperlink 21.0.0) Handling keyring>=23.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: keyring>=23.5.0 (installed: keyring 23.11.0) Handling packaging>=21.3 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: packaging>=21.3 (installed: packaging 23.0) Handling pexpect~=4.8 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: pexpect~=4.8 (installed: pexpect 4.8.0) Handling platformdirs>=2.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: platformdirs>=2.5.0 (installed: platformdirs 2.6.2) Handling pyperclip>=1.8.2 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: pyperclip>=1.8.2 (installed: pyperclip 1.8.2) Handling rich>=11.2.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: rich>=11.2.0 (installed: rich 13.3.5) Handling shellingham>=1.4.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: shellingham>=1.4.0 (installed: shellingham 1.5.0.post1) Handling tomli-w>=1.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: tomli-w>=1.0 (installed: tomli-w 1.0.0) Handling tomlkit>=0.11.1 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: tomlkit>=0.11.1 (installed: tomlkit 0.11.8) Handling userpath~=1.7 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: userpath~=1.7 (installed: userpath 1.8.0) Handling virtualenv>=20.16.2 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: virtualenv>=20.16.2 (installed: virtualenv 20.21.0) + cat /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires + rm -rfv hatch-1.7.0.dist-info/ removed 'hatch-1.7.0.dist-info/METADATA' removed directory 'hatch-1.7.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/hatch-1.7.0-3.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'], chrootPath='/var/lib/mock/dist-an23-build-359251-71155/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/hatch.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1710201600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.ViwC5S + umask 022 + cd /builddir/build/BUILD + cd hatch-hatch-v1.7.0 + /builddir/build/SOURCES/extract-hatchling-environments -v Created /builddir/build/BUILD/hatch-hatch-v1.7.0/_req Wrote env.default.txt with 9 dependencies Wrote env.test.txt with 9 dependencies Wrote env.coverage.txt with 2 dependencies Wrote env.lint.txt with 3 dependencies Wrote env.docs.txt with 12 dependencies Wrote env.backend.txt with 2 dependencies Wrote env.release.txt with 0 dependencies + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires _req/env.test.txt Handling coverage[toml]>=6.2 from requirements file _req/env.test.txt Requirement satisfied: coverage[toml]>=6.2 (installed: coverage 7.2.1) (extras are currently not checked) Handling filelock>=3.7.1 from requirements file _req/env.test.txt Requirement satisfied: filelock>=3.7.1 (installed: filelock 3.9.0) Handling pytest from requirements file _req/env.test.txt Requirement satisfied: pytest (installed: pytest 7.3.1) Handling pytest-cov from requirements file _req/env.test.txt Requirement satisfied: pytest-cov (installed: pytest-cov 4.0.0) Handling pytest-mock from requirements file _req/env.test.txt Requirement satisfied: pytest-mock (installed: pytest-mock 3.6.1) Handling pytest-randomly from requirements file _req/env.test.txt Requirement satisfied: pytest-randomly (installed: pytest-randomly 3.12.0) Handling pytest-rerunfailures from requirements file _req/env.test.txt Requirement satisfied: pytest-rerunfailures (installed: pytest-rerunfailures 11.0) Handling pytest-xdist from requirements file _req/env.test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.2.1) Handling trustme from requirements file _req/env.test.txt Requirement satisfied: trustme (installed: trustme 0.9.0) Handling hatchling>=1.14.0 from build-system.requires Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling click>=8.0.3 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: click>=8.0.3 (installed: click 8.1.3) Handling hatchling>=1.14.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: hatchling>=1.14.0 (installed: hatchling 1.21.0) Handling httpx>=0.22.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: httpx>=0.22.0 (installed: httpx 0.23.0) Handling hyperlink>=21.0.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: hyperlink>=21.0.0 (installed: hyperlink 21.0.0) Handling keyring>=23.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: keyring>=23.5.0 (installed: keyring 23.11.0) Handling packaging>=21.3 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: packaging>=21.3 (installed: packaging 23.0) Handling pexpect~=4.8 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: pexpect~=4.8 (installed: pexpect 4.8.0) Handling platformdirs>=2.5.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: platformdirs>=2.5.0 (installed: platformdirs 2.6.2) Handling pyperclip>=1.8.2 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: pyperclip>=1.8.2 (installed: pyperclip 1.8.2) Handling rich>=11.2.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: rich>=11.2.0 (installed: rich 13.3.5) Handling shellingham>=1.4.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: shellingham>=1.4.0 (installed: shellingham 1.5.0.post1) Handling tomli-w>=1.0 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: tomli-w>=1.0 (installed: tomli-w 1.0.0) Handling tomlkit>=0.11.1 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: tomlkit>=0.11.1 (installed: tomlkit 0.11.8) Handling userpath~=1.7 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: userpath~=1.7 (installed: userpath 1.8.0) Handling virtualenv>=20.16.2 from hook generated metadata: Requires-Dist (hatch) Requirement satisfied: virtualenv>=20.16.2 (installed: virtualenv 20.21.0) + cat /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-buildrequires + rm -rfv hatch-1.7.0.dist-info/ removed 'hatch-1.7.0.dist-info/METADATA' removed directory 'hatch-1.7.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.OfAntK + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd hatch-hatch-v1.7.0 + mkdir -p /builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_wheel.py /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir Looking in indexes: https://mirrors.aliyun.com/pypi/simple/ Processing /builddir/build/BUILD/hatch-hatch-v1.7.0 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: hatch Building wheel for hatch (pyproject.toml): started Running command Building wheel for hatch (pyproject.toml) Building wheel for hatch (pyproject.toml): finished with status 'done' Created wheel for hatch: filename=hatch-1.7.0-py3-none-any.whl size=90504 sha256=70f0d0c00a0b0e2aca900a19570c573aaf24dca4aedf896639471830d4a5a966 Stored in directory: /builddir/.cache/pip/wheels/9e/48/14/650266e980b006f966d9e63d514129eff2ebfbf691aba62155 Successfully built hatch + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.uxN06d + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch ++ dirname /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd hatch-hatch-v1.7.0 ++ ls /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir/hatch-1.7.0-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=hatch==1.7.0 + TMPDIR=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir hatch==1.7.0 Using pip 23.3.1 from /usr/lib/python3.10/site-packages/pip (python 3.10) Looking in links: /builddir/build/BUILD/hatch-hatch-v1.7.0/pyproject-wheeldir Processing ./pyproject-wheeldir/hatch-1.7.0-py3-none-any.whl Installing collected packages: hatch Creating /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin changing mode of /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin/hatch to 755 Successfully installed hatch-1.7.0 + '[' -d /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin ']' + '[' -f /usr/bin/pathfix3.10.py ']' + pathfix=/usr/bin/pathfix3.10.py + '[' -z s ']' + shebang_flags=-kas + /usr/bin/pathfix3.10.py -pni /usr/bin/python3 -kas /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin/hatch /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin/hatch: updating + rm -rfv /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages ']' + site_dirs+=("/usr/lib/python3.10/site-packages") + '[' /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib64/python3.10/site-packages '!=' /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages ']' + '[' -d /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib64/python3.10/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/anolis + /usr/bin/python3 -B /usr/lib/rpm/anolis/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch --record /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/RECORD --output /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-record + rm -fv /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/RECORD removed '/builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages/hatch-1.7.0.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_PERCENTAGES_COUNT=8 + /usr/bin/python3 /usr/lib/rpm/anolis/pyproject_save_files.py --output-files /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-files --output-modules /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch --sitelib /usr/lib/python3.10/site-packages --sitearch /usr/lib64/python3.10/site-packages --python-version 3.10 --pyproject-record /builddir/build/BUILD/hatch-1.7.0-3.an23.noarch-pyproject-record --prefix /usr hatch + install -t /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/share/man/man1 -D -p -m 0644 /builddir/build/SOURCES/hatch.1 /builddir/build/SOURCES/hatch-build.1 /builddir/build/SOURCES/hatch-clean.1 /builddir/build/SOURCES/hatch-config.1 /builddir/build/SOURCES/hatch-config-explore.1 /builddir/build/SOURCES/hatch-config-find.1 /builddir/build/SOURCES/hatch-config-restore.1 /builddir/build/SOURCES/hatch-config-set.1 /builddir/build/SOURCES/hatch-config-show.1 /builddir/build/SOURCES/hatch-config-update.1 /builddir/build/SOURCES/hatch-dep.1 /builddir/build/SOURCES/hatch-dep-hash.1 /builddir/build/SOURCES/hatch-dep-show.1 /builddir/build/SOURCES/hatch-dep-show-requirements.1 /builddir/build/SOURCES/hatch-dep-show-table.1 /builddir/build/SOURCES/hatch-env.1 /builddir/build/SOURCES/hatch-env-create.1 /builddir/build/SOURCES/hatch-env-find.1 /builddir/build/SOURCES/hatch-env-prune.1 /builddir/build/SOURCES/hatch-env-remove.1 /builddir/build/SOURCES/hatch-env-run.1 /builddir/build/SOURCES/hatch-env-show.1 /builddir/build/SOURCES/hatch-new.1 /builddir/build/SOURCES/hatch-project.1 /builddir/build/SOURCES/hatch-project-metadata.1 /builddir/build/SOURCES/hatch-publish.1 /builddir/build/SOURCES/hatch-run.1 /builddir/build/SOURCES/hatch-shell.1 /builddir/build/SOURCES/hatch-status.1 /builddir/build/SOURCES/hatch-version.1 + echo '%{python3_sitelib}/hatch-1.7.0.dist-info/licenses/LICENSE.txt' + /usr/bin/find-debuginfo -j80 --strict-build-id -m -i --build-id-seed 1.7.0-3.an23 --unique-debug-suffix -1.7.0-3.an23.noarch --unique-debug-src-base hatch-1.7.0-3.an23.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/hatch-hatch-v1.7.0 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/anolis/brp-ldconfig + COMPRESS='zstd -f --rm -19 -T0' + COMPRESS_EXT=.zst + /usr/lib/rpm/brp-compress + /usr/lib/rpm/anolis/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/anolis/clean_perl + /usr/lib/rpm/anolis/check_elf_files + /usr/lib/rpm/anolis/brp-mangle-shebangs + /usr/lib/rpm/anolis/remove-info-dir + /usr/lib/rpm/anolis/check-desktop-files + /usr/lib/rpm/anolis/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10 using python3.10 + /usr/lib/rpm/anolis/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.072LNT + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd hatch-hatch-v1.7.0 + k='not (TestBuildStandard and test_editable_pth)' + k='not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact)' + k='not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact) and not (TestBuildStandard and test_editable_default)' + k='not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact) and not (TestBuildStandard and test_editable_default) and not (TestBuildStandard and test_default_auto_detection)' + k='not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact) and not (TestBuildStandard and test_editable_default) and not (TestBuildStandard and test_default_auto_detection) and not test_explicit_path' + k='not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact) and not (TestBuildStandard and test_editable_default) and not (TestBuildStandard and test_default_auto_detection) and not test_explicit_path and not test_default' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib64/python3.10/site-packages:/builddir/build/BUILDROOT/hatch-1.7.0-3.an23.noarch/usr/lib/python3.10/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/hatch-hatch-v1.7.0/.pyproject-builddir' + /usr/bin/pytest -k 'not (TestBuildStandard and test_editable_pth) and not (TestBuildStandard and test_editable_exact) and not (TestBuildStandard and test_editable_default) and not (TestBuildStandard and test_default_auto_detection) and not test_explicit_path and not test_default' -vv ============================= test session starts ============================== platform linux -- Python 3.10.13, pytest-7.3.1, pluggy-1.0.0 -- /usr/bin/python3 cachedir: .pytest_cache Using --randomly-seed=3610698703 rootdir: /builddir/build/BUILD/hatch-hatch-v1.7.0 plugins: cov-4.0.0, mock-3.6.1, randomly-3.12.0, rerunfailures-11.0, xdist-3.2.1, anyio-3.5.0 collecting ... collected 1770 items / 164 deselected / 1606 selected tests/utils/test_fs.py::test_temp_directory PASSED [ 0%] tests/utils/test_fs.py::test_temp_chdir PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_temp_hide_non_existent PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_as_cwd_env_vars PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_remove_directory PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_remove_file PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_as_cwd PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_ensure_parent_dir_exists PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_resolve_relative_non_existent PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_temp_hide_file PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_ensure_dir_exists PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_temp_hide_dir PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_remove_non_existent PASSED [ 0%] tests/utils/test_fs.py::TestPath::test_type PASSED [ 0%] tests/venv/test_core.py::test_activation PASSED [ 0%] tests/venv/test_core.py::test_remove_non_existent_no_error PASSED [ 0%] tests/venv/test_core.py::test_creation PASSED [ 1%] tests/venv/test_core.py::test_initialization_does_not_create PASSED [ 1%] tests/venv/test_core.py::test_executables_directory PASSED [ 1%] tests/venv/test_core.py::test_python_data PASSED [ 1%] tests/venv/test_core.py::test_creation_allow_system_packages PASSED [ 1%] tests/venv/test_core.py::test_context_manager PASSED [ 1%] tests/venv/test_core.py::test_activation_path_env_var_missing PASSED [ 1%] tests/backend/builders/hooks/test_custom.py::test_nonexistent PASSED [ 1%] tests/backend/builders/hooks/test_custom.py::test_no_path PASSED [ 1%] tests/backend/builders/hooks/test_custom.py::test_no_subclass PASSED [ 1%] tests/backend/builders/hooks/test_custom.py::test_path_not_string PASSED [ 1%] tests/venv/test_utils.py::TestGetRandomVenvName::test_different PASSED [ 1%] tests/venv/test_utils.py::TestGetRandomVenvName::test_length PASSED [ 1%] tests/backend/metadata/test_hatch.py::TestBuildTargets::test_correct PASSED [ 1%] tests/backend/metadata/test_hatch.py::TestBuildTargets::test_not_table PASSED [ 1%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_empty PASSED [ 1%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_not_table PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSourceName::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_missing PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_not_table PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSchemeName::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSource::test_unknown PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionSource::test_cached PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionScheme::test_unknown PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestVersionScheme::test_cached PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadata::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadata::test_not_table PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestBuildConfig::test_not_table PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestBuildConfig::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadataAllowDirectReferences::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadataAllowDirectReferences::test_not_boolean PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadataAllowAmbiguousFeatures::test_correct PASSED [ 2%] tests/backend/metadata/test_hatch.py::TestMetadataAllowAmbiguousFeatures::test_not_boolean PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_string_shell PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_list_shell PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_populate_default_popen_kwargs_executable PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_home PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_tag PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_list PASSED [ 3%] tests/utils/test_platform.py::TestLinux::test_format_for_subprocess_string PASSED [ 3%] tests/utils/test_platform.py::TestMacOS::test_tag SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_home SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_list_shell SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_list SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_populate_default_popen_kwargs_executable SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_string_shell SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestMacOS::test_format_for_subprocess_string SKIPPED (Not running on macOS) [ 3%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_string_shell SKIPPED (Not running on Windows) [ 3%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_list_shell SKIPPED (Not running on Windows) [ 4%] tests/utils/test_platform.py::TestWindows::test_populate_default_popen_kwargs_executable SKIPPED (Not running on Windows) [ 4%] tests/utils/test_platform.py::TestWindows::test_home SKIPPED (Not running on Windows) [ 4%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_string SKIPPED (Not running on Windows) [ 4%] tests/utils/test_platform.py::TestWindows::test_format_for_subprocess_list SKIPPED (Not running on Windows) [ 4%] tests/utils/test_platform.py::TestWindows::test_tag SKIPPED (Not running on Windows) [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_text_correct PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_normalization PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_dynamic PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_file_correct PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_multiple_options PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_no_option PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_file_nonexistent PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_invalid_type PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_file_not_string PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_invalid_expression PASSED [ 4%] tests/backend/metadata/test_core.py::TestLicense::test_text_not_string PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_error PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_not_string PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_static_not_string PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_not_table PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_static_invalid PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_missing PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_regex_invalid PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_unknown_source PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_static_missing PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_empty PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_dynamic_source_regex PASSED [ 5%] tests/backend/metadata/test_core.py::TestVersion::test_static_normalization PASSED [ 5%] tests/backend/metadata/test_core.py::TestDescription::test_dynamic PASSED [ 5%] tests/backend/metadata/test_core.py::TestDescription::test_not_string PASSED [ 5%] tests/backend/metadata/test_core.py::TestDescription::test_custom PASSED [ 6%] tests/backend/metadata/test_core.py::TestDescription::test_normaliza PASSED [ 6%] tests/backend/metadata/test_core.py::TestName::test_normalization[My--App] PASSED [ 6%] tests/backend/metadata/test_core.py::TestName::test_normalization[My__App] PASSED [ 6%] tests/backend/metadata/test_core.py::TestName::test_normalization[My..App] PASSED [ 6%] tests/backend/metadata/test_core.py::TestRawName::test_dynamic PASSED [ 6%] tests/backend/metadata/test_core.py::TestRawName::test_invalid PASSED [ 6%] tests/backend/metadata/test_core.py::TestRawName::test_not_string PASSED [ 6%] tests/backend/metadata/test_core.py::TestRawName::test_correct PASSED [ 6%] tests/backend/metadata/test_core.py::TestRawName::test_missing PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_not_array PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_dynamic PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_not_table PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_not_string PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_and_email PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_email_only PASSED [ 6%] tests/backend/metadata/test_core.py::TestMaintainers::test_no_data PASSED [ 7%] tests/backend/metadata/test_core.py::TestMaintainers::test_email_not_string PASSED [ 7%] tests/backend/metadata/test_core.py::TestMaintainers::test_name_only PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_email_not_string PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_not_array PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_dynamic PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_name_not_string PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_email_only PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_not_table PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_name_and_email PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_name_only PASSED [ 7%] tests/backend/metadata/test_core.py::TestAuthors::test_no_data PASSED [ 7%] tests/backend/metadata/test_core.py::TestHatchPersonalProjectConfigFile::test_precedence PASSED [ 7%] tests/backend/metadata/test_core.py::TestHatchPersonalProjectConfigFile::test_correct PASSED [ 7%] tests/backend/metadata/test_core.py::TestGUIScripts::test_not_table PASSED [ 7%] tests/backend/metadata/test_core.py::TestGUIScripts::test_entry_not_string PASSED [ 7%] tests/backend/metadata/test_core.py::TestGUIScripts::test_correct PASSED [ 8%] tests/backend/metadata/test_core.py::TestGUIScripts::test_dynamic PASSED [ 8%] tests/backend/metadata/test_core.py::TestClassifiers::test_dynamic PASSED [ 8%] tests/backend/metadata/test_core.py::TestClassifiers::test_entry_not_string PASSED [ 8%] tests/backend/metadata/test_core.py::TestClassifiers::test_not_array PASSED [ 8%] tests/backend/metadata/test_core.py::TestClassifiers::test_correct PASSED [ 8%] tests/backend/metadata/test_core.py::TestClassifiers::test_entry_unknown PASSED [ 8%] tests/backend/metadata/test_core.py::TestConfig::test_reuse PASSED [ 8%] tests/backend/metadata/test_core.py::TestConfig::test_read PASSED [ 8%] tests/backend/metadata/test_core.py::TestHook::test_custom PASSED [ 8%] tests/backend/metadata/test_core.py::TestHook::test_custom_missing_dynamic PASSED [ 8%] tests/backend/metadata/test_core.py::TestHook::test_unknown PASSED [ 8%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.rst-text/x-rst] PASSED [ 8%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.md-text/markdown] PASSED [ 8%] tests/backend/metadata/test_core.py::TestReadme::test_string_correct[.txt-text/plain] PASSED [ 8%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_not_string PASSED [ 8%] tests/backend/metadata/test_core.py::TestReadme::test_string_path_nonexistent PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_missing PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_unknown_type[readme_content_type] PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_string_path_unknown_content_type PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_dynamic PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_unknown_type[readme] PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_nonexistent PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_content_type_not_unknown PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_text_correct PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_text_not_string PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_not_string PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_multiple_options PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_no_option PASSED [ 9%] tests/backend/metadata/test_core.py::TestReadme::test_table_file_correct PASSED [ 9%] tests/backend/metadata/test_core.py::TestRequiresPython::test_not_string[requires_python] PASSED [ 9%] tests/backend/metadata/test_core.py::TestRequiresPython::test_custom PASSED [ 9%] tests/backend/metadata/test_core.py::TestRequiresPython::test_dynamic PASSED [ 10%] tests/backend/metadata/test_core.py::TestRequiresPython::test_not_string[python_constraint] PASSED [ 10%] tests/backend/metadata/test_core.py::TestRequiresPython::test_invalid PASSED [ 10%] tests/backend/metadata/test_core.py::TestScripts::test_dynamic PASSED [ 10%] tests/backend/metadata/test_core.py::TestScripts::test_not_table PASSED [ 10%] tests/backend/metadata/test_core.py::TestScripts::test_correct PASSED [ 10%] tests/backend/metadata/test_core.py::TestScripts::test_entry_not_string PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_not_array PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_entry_not_string PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_with_licenses PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_missing_license PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_not_array PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_globs_with_licenses PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_dynamic PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_paths_entry_not_string PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_no_option PASSED [ 10%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_not_table PASSED [ 11%] tests/backend/metadata/test_core.py::TestLicenseFiles::test_multiple_options PASSED [ 11%] tests/backend/metadata/test_core.py::TestURLs::test_entry_not_string PASSED [ 11%] tests/backend/metadata/test_core.py::TestURLs::test_not_table PASSED [ 11%] tests/backend/metadata/test_core.py::TestURLs::test_correct PASSED [ 11%] tests/backend/metadata/test_core.py::TestURLs::test_dynamic PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_correct PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_not_array PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_entry_not_string PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_not_array PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_cache_entry_not_string PASSED [ 11%] tests/backend/metadata/test_core.py::TestDynamic::test_correct PASSED [ 11%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_entry_not_string PASSED [ 11%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_context_formatting PASSED [ 11%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_direct_reference PASSED [ 11%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_correct PASSED [ 11%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_dynamic PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_definitions_not_array PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_not_table PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_direct_reference_allowed PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_invalid PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_allow_ambiguity PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_conflict PASSED [ 12%] tests/backend/metadata/test_core.py::TestOptionalDependencies::test_invalid_name PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_not_table PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_not_table PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_correct PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_forbidden_fields[gui-scripts] PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_entry_not_string PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_forbidden_fields[scripts] FAILED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_dynamic PASSED [ 12%] tests/backend/metadata/test_core.py::TestEntryPoints::test_data_empty PASSED [ 12%] tests/backend/metadata/test_core.py::TestKeywords::test_dynamic PASSED [ 13%] tests/backend/metadata/test_core.py::TestKeywords::test_not_array PASSED [ 13%] tests/backend/metadata/test_core.py::TestKeywords::test_entry_not_string PASSED [ 13%] tests/backend/metadata/test_core.py::TestKeywords::test_correct PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_hatch_metadata_not_table PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_missing_core_metadata PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_core_metadata_not_table PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_types PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_build_metadata_not_table PASSED [ 13%] tests/backend/metadata/test_core.py::TestInterface::test_tool_metadata_not_table PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_direct_reference_allowed PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_invalid PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_context_formatting PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_correct PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_direct_reference PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_entry_not_string PASSED [ 13%] tests/backend/metadata/test_core.py::TestDependencies::test_dynamic PASSED [ 14%] tests/backend/metadata/test_core.py::TestDependencies::test_not_array PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_incompatible_environment PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_environment_only PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_include_features PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_plugin_dependencies_unmet PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_features_only PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_project_only PASSED [ 14%] tests/cli/dep/show/test_requirements.py::test_unknown_feature PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_all[construct_metadata_file_2_2] FAILED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_name[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_license_expression[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_name_and_email[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_multiple[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_email[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_multiple[construct_metadata_file_2_2] PASSED [ 14%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_keywords_multiple[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_email[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_license[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_keywords_single[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_dependencies[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_requires_python[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_extra_runtime_dependencies[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_readme[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_maintainers_name[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_classifiers[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_urls[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_authors_name_and_email[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_optional_dependencies[construct_metadata_file_2_2] FAILED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_description[construct_metadata_file_2_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_multiple[construct_metadata_file_1_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_classifiers[construct_metadata_file_1_2] PASSED [ 15%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_email[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_all[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_multiple[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_name_and_email[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_description[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_maintainers_name[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_keywords_multiple[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_keywords_single[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_email[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_name[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_dependencies[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_requires_python[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_urls[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_authors_name_and_email[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_license[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV12::test_extra_runtime_dependencies[construct_metadata_file_1_2] PASSED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_all[construct_metadata_file_2_1] FAILED [ 16%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_multiple[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_license[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_requires_python[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_keywords_single[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_optional_dependencies[construct_metadata_file_2_1] FAILED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_readme[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_email[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_name[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_email[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_dependencies[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_multiple[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_license_expression[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_name[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_urls[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_maintainers_name_and_email[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_extra_runtime_dependencies[construct_metadata_file_2_1] PASSED [ 17%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_authors_name_and_email[construct_metadata_file_2_1] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_description[construct_metadata_file_2_1] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_classifiers[construct_metadata_file_2_1] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_keywords_multiple[construct_metadata_file_2_1] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_name[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_requires_python[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_urls[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_email[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_description[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_multiple[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_name[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_dependencies[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_multiple[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_all[construct_metadata_file_2_3] FAILED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_keywords_single[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_email[construct_metadata_file_2_3] PASSED [ 18%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_license_files[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_extra_runtime_dependencies[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_keywords_multiple[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_maintainers_name_and_email[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_classifiers[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_optional_dependencies[construct_metadata_file_2_3] FAILED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_readme[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_authors_name_and_email[construct_metadata_file_2_3] PASSED [ 19%] tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_license_expression[construct_metadata_file_2_3] PASSED [ 19%] tests/cli/env/test_run.py::test_ignore_compatibility PASSED [ 19%] tests/cli/env/test_run.py::test_filter PASSED [ 19%] tests/cli/env/test_run.py::test_filter_not_mapping PASSED [ 19%] tests/cli/env/test_run.py::test_force_continue PASSED [ 19%] tests/cli/env/test_run.py::test_plugin_dependencies_unmet PASSED [ 19%] tests/backend/builders/test_config.py::TestReproducible::test_target_not_boolean PASSED [ 19%] tests/backend/builders/test_config.py::TestReproducible::test_target PASSED [ 19%] tests/backend/builders/test_config.py::TestReproducible::test_global_not_boolean PASSED [ 20%] tests/backend/builders/test_config.py::TestReproducible::test_target_overrides_global PASSED [ 20%] tests/backend/builders/test_config.py::TestReproducible::test_global PASSED [ 20%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_exclude PASSED [ 20%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_only_include PASSED [ 20%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_global_exclude PASSED [ 20%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_packages PASSED [ 20%] tests/backend/builders/test_config.py::TestFileSelectionDefaults::test_include PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target_overrides_global PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_global PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_global_not_boolean PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeDependencies::test_target_not_boolean PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_unknown PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target PASSED [ 20%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_not_array PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_unknown PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_overrides_global PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_not_string PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_empty_string PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_not_array PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_target_feature_empty_string PASSED [ 21%] tests/backend/builders/test_config.py::TestRequireRuntimeFeatures::test_global_feature_not_string PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_not_string PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_require_runtime_dependencies PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_features_disabled PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hook_dependency_not_string PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_env_var_all_override_enable_by_default PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_require_runtime_features PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_dependencies_not_boolean PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_not_array PASSED [ 21%] tests/backend/builders/test_config.py::TestDependencies::test_global_dependency_not_string PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_features PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_unknown PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_dependencies_disabled PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_global_not_array PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hook_require_runtime_features_feature_empty_string PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_env_var_specific_override_enable_by_default PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_target_not_array PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_enable_by_default PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hook_dependencies_not_array PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_correct PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_hooks_require_runtime_dependencies PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_env_var_no_hooks PASSED [ 22%] tests/backend/builders/test_config.py::TestDependencies::test_target_dependency_not_string PASSED [ 22%] tests/backend/builders/test_config.py::TestDirectory::test_global_not_boolean PASSED [ 22%] tests/backend/builders/test_config.py::TestDirectory::test_target_not_boolean PASSED [ 22%] tests/backend/builders/test_config.py::TestDirectory::test_absolute_path PASSED [ 23%] tests/backend/builders/test_config.py::TestDirectory::test_target PASSED [ 23%] tests/backend/builders/test_config.py::TestDirectory::test_target_overrides_global PASSED [ 23%] tests/backend/builders/test_config.py::TestDirectory::test_global PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_absolute PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative_path_empty_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_invalid_type PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_source_empty_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative_path_not_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative_path_empty_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_order PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_source_empty_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_invalid_type PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_absolute PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_global_relative_path_not_string PASSED [ 23%] tests/backend/builders/test_config.py::TestForceInclude::test_target_relative PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_overrides_global PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_pattern_not_string PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_target_pattern_empty_string PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_invalid_type PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_pattern_not_string PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global PASSED [ 24%] tests/backend/builders/test_config.py::TestDevModeDirs::test_global_pattern_empty_string PASSED [ 24%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target PASSED [ 24%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target_not_boolean PASSED [ 24%] tests/backend/builders/test_config.py::TestOnlyPackages::test_global_not_boolean PASSED [ 24%] tests/backend/builders/test_config.py::TestOnlyPackages::test_target_overrides_global PASSED [ 24%] tests/backend/builders/test_config.py::TestOnlyPackages::test_global PASSED [ 24%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target_not_boolean PASSED [ 24%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target PASSED [ 24%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_global_not_boolean PASSED [ 25%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_global PASSED [ 25%] tests/backend/builders/test_config.py::TestIgnoreVCS::test_target_overrides_global PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_order PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_target_overrides_global PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_global_not_table PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_global PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_specific_override_enable_by_default PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_enable_by_default PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_target_hook_not_table PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_no_hooks PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_env_var_all_override_enable_by_default PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_target_not_table PASSED [ 25%] tests/backend/builders/test_config.py::TestHookConfig::test_global_hook_not_table PASSED [ 25%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_pattern_empty_string PASSED [ 25%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_becomes_spec PASSED [ 25%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_overrides_global[\\] SKIPPED (Not running on Windows) [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_pattern_empty_string PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_invalid_type PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_pattern_not_string PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global[/] PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target[\\] SKIPPED (Not running on Windows) [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target_overrides_global[/] PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global_pattern_not_string PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_global[\\] SKIPPED (Not running on Windows) [ 26%] tests/backend/builders/test_config.py::TestPatternArtifacts::test_target[/] PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternMatching::test_include_explicit PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternMatching::test_artifact_super_precedence PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternMatching::test_no_include_greedy PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternMatching::test_exclude_precedence PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_git[\\] SKIPPED (Not running on Windows) [ 26%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_mercurial[/] PASSED [ 26%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_overrides_global[/] PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_global[\\] SKIPPED (Not running on Windows) [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_pattern_not_string PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_invalid_type PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_mercurial[\\] SKIPPED (Not running on Windows) [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_global[/] PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_pattern_empty_string PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_target[\\] SKIPPED (Not running on Windows) [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_target[/] PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_mercurial[\\] SKIPPED (Not running on Windows) [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_mercurial[/] PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_override_default_global_exclude_patterns PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_ignore_vcs_git[/] PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_pattern_empty_string PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_git[\\] SKIPPED (Not running on Windows) [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_global_pattern_not_string PASSED [ 27%] tests/backend/builders/test_config.py::TestPatternExclude::test_vcs_git[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternExclude::test_target_overrides_global[\\] SKIPPED (Not running on Windows) [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_pattern_empty_string PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_packages_included[\\] SKIPPED (Not running on Windows) [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_packages_included[\\] SKIPPED (Not running on Windows) [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_packages_included[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_becomes_spec PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_overrides_global[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target[\\] SKIPPED (Not running on Windows) [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_invalid_type PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_pattern_empty_string PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global_pattern_not_string PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_pattern_not_string PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_packages_included[/] PASSED [ 28%] tests/backend/builders/test_config.py::TestPatternInclude::test_global[\\] SKIPPED (Not running on Windows) [ 29%] tests/backend/builders/test_config.py::TestPatternInclude::test_target_overrides_global[\\] SKIPPED (Not running on Windows) [ 29%] tests/backend/builders/test_config.py::TestPackages::test_no_source PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_target_overrides_global PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_global PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_target_package_not_string PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_global_package_not_string PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_global_package_empty_string PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_global_invalid_type PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_target_package_empty_string PASSED [ 29%] tests/backend/builders/test_config.py::TestPackages::test_target PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_path_empty_string PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_global_array PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_compatible_with_packages PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_target_invalid_type PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_global_mapping PASSED [ 29%] tests/backend/builders/test_config.py::TestSources::test_target_array_source_not_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_global_array_source_empty_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_replacement_not_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_source_empty_string FAILED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_array PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_global_mapping_replacement_not_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_global_invalid_type PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_no_source PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_global_array_source_not_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_source_empty_string FAILED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_mapping PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_array_source_empty_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_mapping_path_empty_string PASSED [ 30%] tests/backend/builders/test_config.py::TestSources::test_target_overrides_global PASSED [ 30%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target_not_boolean PASSED [ 30%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_global PASSED [ 30%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_global_not_boolean PASSED [ 31%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target_overrides_global PASSED [ 31%] tests/backend/builders/test_config.py::TestSkipExcludedDirs::test_target PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_correct PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[../foo] PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[~/foo] PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_path_not_string PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[~/foo] PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_correct PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_duplicate PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_path_not_string PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_invalid_type PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_duplicate PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_invalid_type PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[/] PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_global_not_relative[../foo] PASSED [ 31%] tests/backend/builders/test_config.py::TestOnlyInclude::test_target_not_relative[/] PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_empty_default PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_version_empty_string PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_invalid_type PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_unknown_version PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_version_not_string PASSED [ 32%] tests/backend/builders/test_config.py::TestVersions::test_correct PASSED [ 32%] tests/backend/builders/test_config.py::TestDevModeExact::test_global_not_boolean PASSED [ 32%] tests/backend/builders/test_config.py::TestDevModeExact::test_global PASSED [ 32%] tests/backend/builders/test_config.py::TestDevModeExact::test_target_overrides_global PASSED [ 32%] tests/backend/builders/test_config.py::TestDevModeExact::test_target_not_boolean PASSED [ 32%] tests/backend/builders/test_config.py::TestDevModeExact::test_target PASSED [ 32%] tests/backend/version/scheme/test_standard.py::test_minor PASSED [ 32%] tests/backend/version/scheme/test_standard.py::test_not_higher PASSED [ 32%] tests/backend/version/scheme/test_standard.py::test_major PASSED [ 32%] tests/backend/version/scheme/test_standard.py::test_specific PASSED [ 32%] tests/backend/version/scheme/test_standard.py::test_release PASSED [ 33%] tests/backend/version/scheme/test_standard.py::test_specific_not_higher_allowed PASSED [ 33%] tests/backend/version/scheme/test_standard.py::test_micro[fix] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::test_micro[micro] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::test_micro[patch] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestDev::test_begin PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestDev::test_continue PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[minor,preview-0.1.0rc0] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[fix,rc-0.0.2rc0] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[major,major,major-3.0.0] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[minor,dev-0.1.0.dev0] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_explicit_error PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestMultiple::test_correct[major,beta-1.0.0b0] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[a] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[preview] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[rc] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[alpha] PASSED [ 33%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[b] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[beta] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[preview] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[c] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[a] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[alpha] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[alpha] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[pre] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[a] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[beta] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[pre] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[preview] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[beta] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[b] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[pre] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[c] PASSED [ 34%] tests/backend/version/scheme/test_standard.py::TestPre::test_continue[rc] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[c] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPre::test_begin[b] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPre::test_restart[rc] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[r] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[rev] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[r] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[post] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_begin[post] PASSED [ 35%] tests/backend/version/scheme/test_standard.py::TestPost::test_continue[rev] PASSED [ 35%] tests/backend/builders/test_custom.py::test_path_not_string PASSED [ 35%] tests/backend/builders/test_custom.py::test_no_path PASSED [ 35%] tests/backend/builders/test_custom.py::test_target_config_not_table PASSED [ 35%] tests/backend/builders/test_custom.py::test_multiple_subclasses PASSED [ 35%] tests/backend/builders/test_custom.py::test_nonexistent PASSED [ 35%] tests/backend/builders/test_custom.py::test_no_subclass PASSED [ 35%] tests/backend/licenses/test_parse.py::test_syntax_errors[with mit] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[with] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[or mit] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_normalization[mit and apache-2.0-MIT AND Apache-2.0] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or or apache-2.0] PASSED [ 36%] 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 [ 36%] tests/backend/licenses/test_parse.py::test_normalization[licenseref-public-domain-LicenseRef-Public-Domain] PASSED [ 36%] 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 [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[and] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_unknown_license PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[(mit] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_normalization[licenseref-proprietary-LicenseRef-Proprietary] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_normalization[mit or apache-2.0-MIT OR Apache-2.0] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or apache-2.0 (bsd-3-clause and MPL-2.0)] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[or] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit or] PASSED [ 36%] tests/backend/licenses/test_parse.py::test_syntax_errors[and mit] PASSED [ 37%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit with] PASSED [ 37%] tests/backend/licenses/test_parse.py::test_normalization[mIt-MIT] PASSED [ 37%] tests/backend/licenses/test_parse.py::test_unknown_license_exception PASSED [ 37%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit)] PASSED [ 37%] 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 [ 37%] tests/backend/licenses/test_parse.py::test_syntax_errors[mit and] PASSED [ 37%] tests/cli/env/test_create.py::test_matrix PASSED [ 37%] tests/cli/env/test_create.py::test_no_project_file PASSED [ 37%] tests/cli/env/test_create.py::test_features SKIPPED (No network connectivity) [ 37%] tests/cli/env/test_create.py::test_install_project_default_dev_mode SKIPPED (No network connectivity) [ 37%] tests/cli/env/test_create.py::test_post_install_commands_error SKIPPED (No network connectivity) [ 37%] tests/cli/env/test_create.py::test_option_absolute_directory PASSED [ 37%] tests/cli/env/test_create.py::test_sync_dynamic_dependencies SKIPPED (No network connectivity) [ 37%] tests/cli/env/test_create.py::test_already_created PASSED [ 37%] tests/cli/env/test_create.py::test_env_var_local_directory PASSED [ 37%] tests/cli/env/test_create.py::test_plugin_dependencies_unmet PASSED [ 38%] tests/cli/env/test_create.py::test_unknown_dynamic_feature SKIPPED (No network connectivity) [ 38%] tests/cli/env/test_create.py::test_install_project_no_dev_mode SKIPPED (No network connectivity) [ 38%] tests/cli/env/test_create.py::test_new PASSED [ 38%] tests/cli/env/test_create.py::test_new_selected_python PASSED [ 38%] tests/cli/env/test_create.py::test_sync_dependencies SKIPPED (No network connectivity) [ 38%] tests/cli/env/test_create.py::test_option_local_directory PASSED [ 38%] tests/cli/env/test_create.py::test_selected_absolute_directory PASSED [ 38%] tests/cli/env/test_create.py::test_undefined PASSED [ 38%] tests/cli/env/test_create.py::test_pre_install_commands_error PASSED [ 38%] tests/cli/env/test_create.py::test_incompatible_matrix_full PASSED [ 38%] tests/cli/env/test_create.py::test_incompatible_single PASSED [ 38%] tests/cli/env/test_create.py::test_env_var_absolute_directory PASSED [ 38%] tests/cli/env/test_create.py::test_unknown_type PASSED [ 38%] tests/cli/env/test_create.py::test_plugin_dependencies_met PASSED [ 38%] tests/cli/env/test_create.py::test_pre_install_commands SKIPPED (No network connectivity) [ 38%] tests/cli/env/test_create.py::test_incompatible_matrix_partial PASSED [ 39%] tests/cli/env/test_create.py::test_post_install_commands SKIPPED (No network connectivity) [ 39%] tests/cli/env/test_create.py::test_selected_local_directory PASSED [ 39%] tests/cli/env/test_create.py::test_enter_project_directory PASSED [ 39%] tests/backend/version/source/test_code.py::test_match_custom_expression_basic PASSED [ 39%] tests/backend/version/source/test_code.py::test_match_custom_expression_complex PASSED [ 39%] tests/backend/version/source/test_code.py::test_search_paths PASSED [ 39%] tests/backend/version/source/test_code.py::test_path_not_string PASSED [ 39%] tests/backend/version/source/test_code.py::test_search_paths_not_array PASSED [ 39%] tests/backend/version/source/test_code.py::test_no_path PASSED [ 39%] tests/backend/version/source/test_code.py::test_search_paths_entry_not_string PASSED [ 39%] tests/backend/version/source/test_code.py::test_match_default_expression PASSED [ 39%] tests/backend/version/source/test_code.py::test_expression_not_string PASSED [ 39%] tests/backend/version/source/test_code.py::test_path_nonexistent PASSED [ 39%] tests/cli/env/test_find.py::test_single PASSED [ 39%] tests/cli/env/test_find.py::test_matrix PASSED [ 39%] tests/cli/env/test_find.py::test_undefined PASSED [ 40%] tests/cli/env/test_find.py::test_plugin_dependencies_unmet PASSED [ 40%] tests/cli/env/test_prune.py::test_all PASSED [ 40%] tests/cli/env/test_prune.py::test_unknown_type PASSED [ 40%] tests/cli/env/test_prune.py::test_active PASSED [ 40%] tests/cli/env/test_prune.py::test_plugin_dependencies_unmet PASSED [ 40%] tests/cli/env/test_prune.py::test_incompatible_ok PASSED [ 40%] tests/backend/utils/test_context.py::test_normal PASSED [ 40%] tests/backend/utils/test_context.py::TestStatic::test_path_separator PASSED [ 40%] tests/backend/utils/test_context.py::TestStatic::test_directory_separator PASSED [ 40%] tests/backend/utils/test_context.py::TestRoot::test_unknown_modifier PASSED [ 40%] tests/backend/utils/test_context.py::TestRoot::test_uri PASSED [ 40%] tests/backend/utils/test_context.py::TestRoot::test_real PASSED [ 40%] tests/backend/utils/test_context.py::TestHome::test_unknown_modifier PASSED [ 40%] tests/backend/utils/test_context.py::TestHome::test_uri PASSED [ 40%] tests/backend/utils/test_context.py::TestHome::test_real PASSED [ 40%] tests/backend/utils/test_context.py::TestEnvVars::test_unset_without_default PASSED [ 41%] tests/backend/utils/test_context.py::TestEnvVars::test_set PASSED [ 41%] tests/backend/utils/test_context.py::TestEnvVars::test_no_selection PASSED [ 41%] tests/backend/builders/test_wheel.py::test_class PASSED [ 41%] tests/backend/builders/test_wheel.py::TestCoreMetadataConstructor::test_not_string PASSED [ 41%] tests/backend/builders/test_wheel.py::TestCoreMetadataConstructor::test_unknown PASSED [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_explicit_selection_with_src_layout FAILED [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch arm64 -arch x86_64-universal2] SKIPPED (requires support for ARM on macOS) [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_editable_sources_rewrite_error FAILED [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_no_strict_naming PASSED [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch x86_64-x86_64] SKIPPED (requires support for ARM on macOS) [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_single_module FAILED [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_max_compat SKIPPED (Not running on macOS) [ 41%] tests/backend/builders/test_wheel.py::TestBuildStandard::test_macos_archflags[-arch arm64-arm64] SKIPPED (requires support for ARM on macOS) [ 41%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative_path_empty_string PASSED [ 41%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative_path_not_string PASSED [ 41%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_source_empty_string PASSED [ 42%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_invalid_type PASSED [ 42%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_relative PASSED [ 42%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_absolute PASSED [ 42%] tests/backend/builders/test_wheel.py::TestExtraMetadata::test_order PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative_path_not_string PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_absolute PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_source_empty_string PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_order PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_invalid_type PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative PASSED [ 42%] tests/backend/builders/test_wheel.py::TestSharedData::test_relative_path_empty_string PASSED [ 42%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_flat_layout PASSED [ 42%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_raw_name_not_normalized PASSED [ 42%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_namespace PASSED [ 42%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_src_layout PASSED [ 42%] tests/backend/builders/test_wheel.py::TestDefaultFileSelection::test_single_module PASSED [ 43%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_scripts PASSED [ 43%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_entry_points PASSED [ 43%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_gui_scripts PASSED [ 43%] tests/backend/builders/test_wheel.py::TestConstructEntryPointsFile::test_all PASSED [ 43%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target PASSED [ 43%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target_not_boolean PASSED [ 43%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_global PASSED [ 43%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_global_not_boolean PASSED [ 43%] tests/backend/builders/test_wheel.py::TestStrictNaming::test_target_overrides_global PASSED [ 43%] tests/backend/builders/test_wheel.py::TestMacOSMaxCompat::test_not_boolean PASSED [ 43%] tests/backend/builders/test_wheel.py::TestMacOSMaxCompat::test_correct PASSED [ 43%] tests/cli/run/test_run.py::test_sync_dependencies SKIPPED (No network connectivity) [ 43%] tests/cli/run/test_run.py::test_matrix_variable_selection_exclusion PASSED [ 43%] tests/cli/run/test_run.py::test_matrix_variable_selection_duplicate_exclusion PASSED [ 43%] tests/cli/run/test_run.py::test_env_detection PASSED [ 43%] tests/cli/run/test_run.py::test_matrix_variable_selection_include_none PASSED [ 44%] tests/cli/run/test_run.py::test_matrix_variable_selection_inclusion PASSED [ 44%] tests/cli/run/test_run.py::test_incompatible_single PASSED [ 44%] tests/cli/run/test_run.py::test_automatic_creation PASSED [ 44%] tests/cli/run/test_run.py::test_matrix_variable_selection_no_command PASSED [ 44%] tests/cli/run/test_run.py::test_plugin_dependencies_unmet PASSED [ 44%] tests/cli/run/test_run.py::test_enter_project_directory PASSED [ 44%] tests/cli/run/test_run.py::test_incompatible_missing_python PASSED [ 44%] tests/cli/run/test_run.py::test_scripts_specific_environment PASSED [ 44%] tests/cli/run/test_run.py::test_matrix_no_environments PASSED [ 44%] tests/cli/run/test_run.py::test_matrix PASSED [ 44%] tests/cli/run/test_run.py::test_context_formatting_recursion PASSED [ 44%] tests/cli/run/test_run.py::test_env_detection_override PASSED [ 44%] tests/cli/run/test_run.py::test_scripts PASSED [ 44%] tests/cli/run/test_run.py::test_matrix_variable_selection_exclude_all PASSED [ 44%] tests/cli/run/test_run.py::test_error PASSED [ 44%] tests/cli/run/test_run.py::test_scripts_no_environment SKIPPED (No network connectivity) [ 45%] tests/cli/run/test_run.py::test_matrix_variable_selection_duplicate_inclusion PASSED [ 45%] tests/cli/run/test_run.py::test_help PASSED [ 45%] tests/cli/run/test_run.py::test_incompatible_matrix_full PASSED [ 45%] tests/cli/run/test_run.py::test_command_expansion_error PASSED [ 45%] tests/cli/run/test_run.py::test_matrix_variable_selection_not_matrix PASSED [ 45%] tests/cli/run/test_run.py::test_sync_project_dependencies SKIPPED (No network connectivity) [ 45%] tests/cli/run/test_run.py::test_matrix_variable_selection_inclusion_multiple_variables PASSED [ 45%] tests/cli/run/test_run.py::test_sync_project_features SKIPPED (No network connectivity) [ 45%] tests/cli/run/test_run.py::test_verbosity PASSED [ 45%] tests/cli/run/test_run.py::test_ignore_error PASSED [ 45%] tests/cli/run/test_run.py::test_incompatible_matrix_partial PASSED [ 45%] tests/cli/run/test_run.py::test_matrix_variable_selection_python_alias PASSED [ 45%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-"-v] PASSED [ 45%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-"-v] PASSED [ 45%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-'-v] PASSED [ 45%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-'-v] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-"-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_no_path PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-"-v] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_path_nonexistent PASSED [ 46%] tests/backend/version/source/test_regex.py::test_path_not_string PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-'-v] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_no_version PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-"-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[version-'-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-"-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-'-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[__version__-"-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-'-v] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-"-] PASSED [ 46%] tests/backend/version/source/test_regex.py::test_set_default_pattern[VERSION-"-v] PASSED [ 46%] 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_custom_pattern PASSED [ 47%] tests/backend/version/source/test_regex.py::test_set_default_pattern[version-'-v] 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_set_default_pattern[VERSION-'-] PASSED [ 47%] tests/backend/version/source/test_regex.py::test_pattern_not_string PASSED [ 47%] tests/backend/version/source/test_regex.py::test_set_default_pattern[__version__-"-v] PASSED [ 47%] tests/backend/version/source/test_regex.py::test_match_default_pattern[VERSION-'-] PASSED [ 47%] tests/backend/version/source/test_regex.py::test_set_default_pattern[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_set_default_pattern[__version__-"-] PASSED [ 47%] tests/cli/env/test_remove.py::test_active PASSED [ 47%] tests/cli/env/test_remove.py::test_unknown PASSED [ 47%] tests/cli/env/test_remove.py::test_all PASSED [ 47%] tests/cli/env/test_remove.py::test_matrix_all PASSED [ 47%] tests/cli/env/test_remove.py::test_nonexistent PASSED [ 48%] tests/cli/env/test_remove.py::test_plugin_dependencies_unmet PASSED [ 48%] tests/cli/env/test_remove.py::test_matrix_all_local_directory PASSED [ 48%] tests/cli/env/test_remove.py::test_incompatible_ok PASSED [ 48%] tests/cli/env/test_remove.py::test_active_override PASSED [ 48%] tests/cli/env/test_remove.py::test_single PASSED [ 48%] tests/index/test_core.py::TestTLS::test_ca_cert PASSED [ 48%] tests/index/test_core.py::TestTLS::test_client_cert_with_key PASSED [ 48%] tests/index/test_core.py::TestTLS::test_client_cert PASSED [ 48%] tests/index/test_core.py::TestURLs::test_project[PyPI test] PASSED [ 48%] tests/index/test_core.py::TestURLs::test_simple[PyPI test] PASSED [ 48%] tests/index/test_core.py::TestURLs::test_project[default] PASSED [ 48%] tests/index/test_core.py::TestURLs::test_simple[default] PASSED [ 48%] tests/index/test_core.py::TestURLs::test_simple[PyPI main] PASSED [ 48%] tests/index/test_core.py::TestURLs::test_project[PyPI main] PASSED [ 48%] tests/index/test_core.py::TestRepo::test_normalization PASSED [ 48%] tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_readme ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_complex ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_string ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_incompatible_environment PASSED [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_readme ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_plugin_dependencies_unmet ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_string ERROR [ 49%] tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_complex ERROR [ 49%] tests/cli/config/test_set.py::test_prevent_invalid_config PASSED [ 49%] tests/cli/config/test_set.py::test_project_location_basic_set_first_project PASSED [ 49%] tests/cli/config/test_set.py::test_standard_deep PASSED [ 49%] tests/cli/config/test_set.py::test_booleans PASSED [ 49%] tests/cli/config/test_set.py::test_standard_complex_map PASSED [ 49%] tests/cli/config/test_set.py::test_standard PASSED [ 49%] tests/cli/config/test_set.py::test_standard_complex_sequence PASSED [ 49%] tests/cli/config/test_set.py::test_prompt PASSED [ 49%] tests/cli/config/test_set.py::test_project_location_complex_set_first_project PASSED [ 50%] tests/cli/config/test_set.py::test_standard_hidden PASSED [ 50%] tests/cli/config/test_set.py::test_prompt_hidden PASSED [ 50%] tests/cli/config/test_set.py::test_resolve_project_location_complex PASSED [ 50%] tests/cli/config/test_set.py::test_resolve_project_location_basic PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_no_duplication PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_infinite_loop_prevention PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_only_include PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_order FAILED [ 50%] tests/backend/builders/plugin/test_interface.py::TestRawConfig::test_read PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestRawConfig::test_reuse PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_target_config_not_table PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_core PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_build_config_not_table PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_hatch PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_base PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_target_config PASSED [ 50%] tests/backend/builders/plugin/test_interface.py::TestMetadata::test_build_config PASSED [ 51%] tests/backend/builders/plugin/test_interface.py::TestHookConfig::test_unknown PASSED [ 51%] tests/backend/builders/plugin/test_interface.py::TestPluginManager::test_reuse PASSED [ 51%] tests/backend/builders/plugin/test_interface.py::TestProjectID::test_normalization PASSED [ 51%] tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_invalid_metadata FAILED [ 51%] tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_unknown_version FAILED [ 51%] tests/cli/version/test_version.py::test_plugin_dependencies_unmet ERROR [ 51%] tests/cli/version/test_version.py::test_show_dynamic PASSED [ 51%] tests/cli/version/test_version.py::test_show_dynamic_missing_build_dependencies ERROR [ 51%] tests/cli/version/test_version.py::test_show_static PASSED [ 51%] tests/cli/version/test_version.py::test_set_dynamic PASSED [ 51%] tests/cli/version/test_version.py::test_incompatible_environment PASSED [ 51%] tests/cli/version/test_version.py::test_set_static PASSED [ 51%] tests/backend/version/source/test_env.py::test_no_variable PASSED [ 51%] tests/backend/version/source/test_env.py::test_variable_contains_version PASSED [ 51%] tests/backend/version/source/test_env.py::test_variable_not_string PASSED [ 51%] tests/backend/version/source/test_env.py::test_variable_not_available PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_not_string PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_correct PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigPath::test_missing PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigTemplate::test_not_string PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigTemplate::test_correct PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigPattern::test_not_string PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestConfigPattern::test_correct PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestPattern::test_custom PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestTemplate::test_create_necessary_directories PASSED [ 52%] tests/backend/builders/hooks/test_version.py::TestTemplate::test_custom PASSED [ 52%] tests/cli/publish/test_publish.py::test_missing_auth SKIPPED (Not testing publishing) [ 52%] tests/cli/publish/test_publish.py::test_explicit_options SKIPPED (Not testing publishing) [ 52%] tests/cli/publish/test_publish.py::test_flags SKIPPED (Not testing publishing) [ 52%] tests/cli/publish/test_publish.py::test_unknown_publisher SKIPPED (Not testing publishing) [ 52%] tests/cli/publish/test_publish.py::test_plugin_config_repo_override SKIPPED (Not testing publishing) [ 52%] tests/cli/publish/test_publish.py::test_no_artifacts SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_initialize_auth SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_prompt SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_repo_missing_url SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_disabled SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_enable_with_flag SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_missing_user SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_repo_invalid_type SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_plugin_config SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_external_artifact_path SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_timestamp_to_version SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_already_exists SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::test_enable_with_prompt SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::TestWheel::test_missing_required_metadata_field[version] SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::TestWheel::test_missing_required_metadata_field[name] SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::TestSourceDistribution::test_missing_required_metadata_field[version] SKIPPED (Not testing publishing) [ 53%] tests/cli/publish/test_publish.py::TestSourceDistribution::test_missing_required_metadata_field[name] SKIPPED (Not testing publishing) [ 54%] tests/env/collectors/test_custom.py::test_no_path PASSED [ 54%] tests/env/collectors/test_custom.py::test_path_not_string PASSED [ 54%] tests/env/collectors/test_custom.py::test_no_subclass PASSED [ 54%] tests/env/collectors/test_custom.py::test_nonexistent PASSED [ 54%] tests/backend/test_build.py::test_wheel PASSED [ 54%] tests/backend/test_build.py::test_sdist PASSED [ 54%] tests/backend/test_build.py::test_editable PASSED [ 54%] tests/config/test_model.py::TestDirs::test_env_set_lazy_error PASSED [ 54%] tests/config/test_model.py::TestDirs::test_python_set_lazy_error PASSED [ 54%] tests/config/test_model.py::TestDirs::test_project_set_lazy_error PASSED [ 54%] tests/config/test_model.py::TestDirs::test_data_not_string PASSED [ 54%] tests/config/test_model.py::TestDirs::test_cache_not_string PASSED [ 54%] tests/config/test_model.py::TestDirs::test_env PASSED [ 54%] tests/config/test_model.py::TestDirs::test_cache PASSED [ 54%] tests/config/test_model.py::TestDirs::test_data PASSED [ 54%] tests/config/test_model.py::TestDirs::test_set_lazy_error PASSED [ 55%] tests/config/test_model.py::TestDirs::test_python PASSED [ 55%] tests/config/test_model.py::TestDirs::test_cache_set_lazy_error PASSED [ 55%] tests/config/test_model.py::TestDirs::test_data_set_lazy_error PASSED [ 55%] tests/config/test_model.py::TestDirs::test_project_not_array PASSED [ 55%] tests/config/test_model.py::TestDirs::test_project PASSED [ 55%] tests/config/test_model.py::TestDirs::test_env_value_not_string PASSED [ 55%] tests/config/test_model.py::TestDirs::test_not_table PASSED [ 55%] tests/config/test_model.py::TestDirs::test_python_not_string PASSED [ 55%] tests/config/test_model.py::TestDirs::test_env_not_table PASSED [ 55%] tests/config/test_model.py::TestDirs::test_project_entry_not_string PASSED [ 55%] tests/config/test_model.py::TestShell::test_table_with_path PASSED [ 55%] tests/config/test_model.py::TestShell::test_table_with_path_and_args PASSED [ 55%] tests/config/test_model.py::TestShell::test_table_args_entry_not_string PASSED [ 55%] tests/config/test_model.py::TestShell::test_table_name_not_string PASSED [ 55%] tests/config/test_model.py::TestShell::test_table_args_not_array PASSED [ 55%] tests/config/test_model.py::TestShell::test_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestShell::test_table_path_not_string PASSED [ 56%] tests/config/test_model.py::TestShell::test_string PASSED [ 56%] tests/config/test_model.py::TestShell::test_table PASSED [ 56%] tests/config/test_model.py::TestShell::test_table_no_name PASSED [ 56%] tests/config/test_model.py::TestShell::test_table_name_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestShell::test_table_args_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestShell::test_invalid_type PASSED [ 56%] tests/config/test_model.py::TestShell::test_table_path_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_spinner PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_success_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_warning_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_warning PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_waiting_not_string PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_info_not_string PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_waiting_set_lazy_error PASSED [ 56%] tests/config/test_model.py::TestTerminal::test_styles_info PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_error_not_string PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_success PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_error PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_debug PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_debug_not_string PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_not_table PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_not_table PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_success_not_string PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_warning_not_string PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_spinner_not_string PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_spinner_set_lazy_error PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_debug_set_lazy_error PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_info_set_lazy_error PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_waiting PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_styles_set_lazy_error PASSED [ 57%] tests/config/test_model.py::TestTerminal::test_set_lazy_error PASSED [ 58%] tests/config/test_model.py::TestTerminal::test_styles_error_set_lazy_error PASSED [ 58%] tests/config/test_model.py::TestProject::test_defined PASSED [ 58%] tests/config/test_model.py::TestProject::test_set_lazy_error PASSED [ 58%] tests/config/test_model.py::TestProject::test_not_string PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_plugins_not_table PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_email PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_plugins_default PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_email_default_env_var PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_email_default_no_git PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_name_default_env_var PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_licenses_not_table PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_licenses_default_entry_not_string PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_name_set_lazy_error PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_set_lazy_error PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_plugins_data_not_table PASSED [ 58%] tests/config/test_model.py::TestTemplate::test_email_set_lazy_error PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_default PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_headers_not_boolean PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_email_default_git PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_default_default PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_name PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_plugins_set_lazy_error PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_name_default_git PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_set_lazy_error PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_name_not_string PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_plugins PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_name_default_no_git PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_not_table PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_email_not_string PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_headers_default PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_default_not_array PASSED [ 59%] tests/config/test_model.py::TestTemplate::test_licenses_headers PASSED [ 60%] tests/config/test_model.py::TestTemplate::test_licenses_default_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestTemplate::test_licenses_headers_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestProjects::test_table PASSED [ 60%] tests/config/test_model.py::TestProjects::test_table_no_location PASSED [ 60%] tests/config/test_model.py::TestProjects::test_string PASSED [ 60%] tests/config/test_model.py::TestProjects::test_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestProjects::test_entry_invalid_type PASSED [ 60%] tests/config/test_model.py::TestProjects::test_location_not_string PASSED [ 60%] tests/config/test_model.py::TestProjects::test_location_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestProjects::test_not_table PASSED [ 60%] tests/config/test_model.py::TestPublish::test_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestPublish::test_defined PASSED [ 60%] tests/config/test_model.py::TestPublish::test_not_table PASSED [ 60%] tests/config/test_model.py::TestPublish::test_data_not_table PASSED [ 60%] tests/config/test_model.py::TestMode::test_set_lazy_error PASSED [ 60%] tests/config/test_model.py::TestMode::test_not_string PASSED [ 61%] tests/config/test_model.py::TestMode::test_unknown PASSED [ 61%] tests/config/test_model.py::TestMode::test_defined 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/test_root.py::TestFreshInstallation::test_config_file_creation_verbose PASSED [ 61%] tests/cli/test_root.py::TestFreshInstallation::test_config_file_creation_default PASSED [ 61%] tests/cli/status/test_status.py::TestModeProject::test_not_a_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeProject::test_no_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeProject::test_found_project[setup.py] PASSED [ 61%] tests/cli/status/test_status.py::TestModeProject::test_found_project[pyproject.toml] PASSED [ 61%] tests/cli/status/test_status.py::TestModeProject::test_unknown_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeLocalDefault::test_found_project PASSED [ 61%] tests/cli/status/test_status.py::TestModeLocalDefault::test_no_project PASSED [ 61%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_flag[pyproject.toml] PASSED [ 61%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_env[setup.py] PASSED [ 61%] tests/cli/status/test_status.py::TestProjectExplicit::test_not_a_project PASSED [ 62%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_flag[setup.py] PASSED [ 62%] tests/cli/status/test_status.py::TestProjectExplicit::test_found_project_env[pyproject.toml] PASSED [ 62%] tests/cli/status/test_status.py::TestProjectExplicit::test_unknown_project PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_not_a_project PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_unknown_project PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_local_override PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_found_project[setup.py] PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_found_project[pyproject.toml] PASSED [ 62%] tests/cli/status/test_status.py::TestModeAware::test_no_detection_no_project PASSED [ 62%] tests/project/test_config.py::TestEnvRequires::test_requirement_not_string PASSED [ 62%] tests/project/test_config.py::TestEnvRequires::test_not_array PASSED [ 62%] tests/project/test_config.py::TestEnvRequires::test_defined PASSED [ 62%] tests/project/test_config.py::TestEnvRequires::test_requirement_invalid PASSED [ 62%] tests/project/test_config.py::TestEnvCollectors::test_not_table PASSED [ 62%] tests/project/test_config.py::TestEnvCollectors::test_collector_not_table PASSED [ 62%] tests/project/test_config.py::TestEnvCollectors::test_defined PASSED [ 63%] tests/project/test_config.py::TestPublish::test_config_not_table PASSED [ 63%] tests/project/test_config.py::TestPublish::test_defined PASSED [ 63%] tests/project/test_config.py::TestPublish::test_not_table PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[platforms] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[env-include] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[extra-dependencies] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_table_overwrite PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[platforms] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[pre-install-commands] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_overwrite[dev-mode] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_conditional[type] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[dependencies] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[pre-install-commands] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_no_key[scripts] PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_matrix_variable_not_array PASSED [ 63%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_table[skip-install] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[dependencies] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[post-install-commands] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[env-exclude] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[dependencies] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_value_not_boolean[dev-mode] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_matrix_simple_only_python[py] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_name_precedence_over_matrix PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_value_not_string[python] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_overwrite[python] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional[type] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_name_not_table PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_overwrite[scripts] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[env-exclude] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[dependencies] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_value_not_string[env-vars] PASSED [ 64%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[env-include] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_no_value[dev-mode] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[env-exclude] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_create[type] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_override[skip-install] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[post-install-commands] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_overwrite[skip-install] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_matrix_variable_array_empty PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_no_key[env-vars] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_env_precedence_over_platform PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_env_not_table PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_override[skip-install] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[post-install-commands] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_overwrite[type] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[dependencies] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[dependencies] PASSED [ 65%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_if_not_array[skip-install] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[env-include] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[extra-dependencies] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_table_create PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_entry_invalid_type[skip-install] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_without_value[scripts] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_matrix_simple_no_python_custom_name_format PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[env-include] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[features] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[platforms] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_boolean_create PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_not_table PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_matrix_variable_empty_string PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_item_not_string[dev-mode] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[env-include] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_override[python] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_override[dev-mode] PASSED [ 66%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[features] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_multiple_inheritance PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_table_overwrite PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[env-include] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[platforms] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_string_create[python] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_matrix_not_table PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_matrix_default_naming PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[features] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[pre-install-commands] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_conditional[skip-install] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_matrix_simple[py] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_create[skip-install] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_with_value[env-vars] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_conditional[python] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[env-include] PASSED [ 67%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[dependencies] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_circular_inheritance PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_if_not_array[type] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[platforms] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[env-exclude] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[env-exclude] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_matrix_simple_only_python[python] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_scripts_inheritance PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[features] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[extra-dependencies] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_config_not_table PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[post-install-commands] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[extra-dependencies] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[post-install-commands] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_overwrite[env-vars] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[env-exclude] PASSED [ 68%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_boolean_overwrite PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_duplicate PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_not_array[skip-install] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[env-exclude] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[env-include] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[platforms] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_item_not_string[skip-install] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_no_value[type] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[features] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[extra-dependencies] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_env_entry_not_table PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[platforms] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_without_value[env-vars] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[env-include] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_table[type] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[features] PASSED [ 69%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[post-install-commands] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[platforms] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[features] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_invalid_type[skip-install] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[features] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_no_value[python] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[extra-dependencies] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[post-install-commands] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_basic PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[env-exclude] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[pre-install-commands] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_empty_string PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[env-include] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_invalid_type[dev-mode] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_environment_collector_finalize_config PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_create[dev-mode] PASSED [ 70%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_set_with_no_type_information PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_boolean_overwrite PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[env-include] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[features] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_without_value[env-vars] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[post-install-commands] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_without_value[env-vars] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_conditional[dev-mode] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[dependencies] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_boolean_overwrite PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[pre-install-commands] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_if_not_array[python] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[extra-dependencies] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_set_with_no_type_information_not_table PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[platforms] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[post-install-commands] PASSED [ 71%] tests/project/test_config.py::TestEnvs::test_matrix_multiple_python_variables PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[post-install-commands] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_no_value[dev-mode] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_matrix_empty PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_boolean_create PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_matrix_multiple_non_python PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_matrix_simple_custom_name_format[python] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_without_value[scripts] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[platforms] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[platforms] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_entry_invalid_type[dev-mode] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[post-install-commands] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_no_value[skip-install] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_create[dev-mode] PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_overrides_name_entry_not_table PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_detached PASSED [ 72%] tests/project/test_config.py::TestEnvs::test_matrix_simple[python] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[pre-install-commands] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[dependencies] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_empty_string[scripts] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[env-exclude] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[platforms] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_matrix_pypy_naming PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[env-include] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[env-exclude] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_not_string[env-vars] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_matrix_simple_custom_name_format[py] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_no_value[type] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[features] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_not_table PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[features] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[dependencies] PASSED [ 73%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_override[dev-mode] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_with_value[env-vars] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_not_array[dev-mode] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_matrices_not_inherited PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_create[python] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_not_array[dev-mode] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_override[env-vars] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[post-install-commands] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[platforms] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_conditional[scripts] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_override[scripts] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[env-exclude] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_environment_collector_finalize_environments PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_create[python] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_no_value[skip-install] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[post-install-commands] PASSED [ 74%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_invalid_type[scripts] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[extra-dependencies] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_boolean[dev-mode] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_not_table PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[env-include] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_table[dev-mode] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[platforms] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_invalid_type[python] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[pre-install-commands] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_create[dev-mode] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[post-install-commands] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[platforms] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_no_value[env-exclude] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[features] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_override[type] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[features] PASSED [ 75%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[dependencies] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_platform[extra-dependencies] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_create[type] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_key_with_value[scripts] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_table_create PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_override[scripts] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[extra-dependencies] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[env-exclude] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_boolean_create[skip-install] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_table[python] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional[skip-install] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[features] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_self_referential PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[features] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_if_not_array[pre-install-commands] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_overwrite[platforms] PASSED [ 76%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_if_not_array[env-vars] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_create[skip-install] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[post-install-commands] 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_array_string[dependencies] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_string[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional_eager_string[type] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[features] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_value_not_boolean[dev-mode] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[features] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[dependencies] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_for_environment_plugins PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_matrix_simple_no_python PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_override[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_entry_invalid_type[python] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[pre-install-commands] PASSED [ 77%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_entry_invalid_type[env-vars] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_platform_not_table 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_array_table_conditional_with_env_var_present[env-exclude] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_no_value[python] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_env_item_not_string[skip-install] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_platform_not_array[skip-install] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_matrix_name_format_not_string PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[env-exclude] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[extra-dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[dependencies] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_entry_invalid_type[scripts] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match_empty_string[pre-install-commands] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[platforms] PASSED [ 78%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_conditional[env-vars] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_precedence_over_platform PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_table_create PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_table_value_not_boolean[skip-install] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[dependencies] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_entry_invalid_type[type] 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_conditional_with_platform[post-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_matrices_not_array PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_without_value[scripts] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[env-exclude] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_unknown_template PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_conditional[python] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[pre-install-commands] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[features] PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_unknown_collector PASSED [ 79%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[pre-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_value_not_string[scripts] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_platform_entry_not_table PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[post-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_value_not_string[type] PASSED [ 80%] 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_conditional_with_env_var_match_empty_string[dependencies] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[env-exclude] 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_precedence_over_env PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_if_not_array[dev-mode] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[env-include] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_present[pre-install-commands] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[env-include] PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_platform_boolean_table_overwrite PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_matrix_series PASSED [ 80%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_existing_append[extra-dependencies] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional_eager_boolean[skip-install] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[pre-install-commands] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_with_value[scripts] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[extra-dependencies] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[pre-install-commands] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_table_override[scripts] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_table_override[type] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_name_boolean_boolean_create PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_with_value[env-vars] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_boolean_array_table_conditional[dev-mode] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_matrix_name_format_invalid PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[extra-dependencies] 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_boolean_array_table_value_not_boolean[skip-install] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_no_match[extra-dependencies] PASSED [ 81%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_table_entry_key_not_string[scripts] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[env-exclude] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_entry_not_table PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_create[type] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_env_boolean_conditional PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_array_string_with_value[scripts] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string_existing_append[extra-dependencies] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[pre-install-commands] 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_array_table_conditional_with_env_var_match[dependencies] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_not_string[env-include] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[pre-install-commands] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_wrong_platform[extra-dependencies] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_array_table_value_not_string[type] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_string_invalid_type[type] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_mapping_string_override[env-vars] PASSED [ 82%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional[env-include] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table[env-include] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_match[env-include] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_string[extra-dependencies] 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_table_entry_if_not_array[scripts] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_basic_override PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_conditional_with_env_var_missing[post-install-commands] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[pre-install-commands] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_matrix_variable_entry_not_string PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_invalid_type[platforms] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_entry_invalid_type[post-install-commands] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[extra-dependencies] PASSED [ 83%] tests/project/test_config.py::TestEnvs::test_overrides_matrix_array_table_entry_value_empty_string[platforms] PASSED [ 83%] tests/project/test_config.py::TestScripts::test_config_invalid_type PASSED [ 83%] tests/project/test_config.py::TestScripts::test_command_expansion_modification PASSED [ 83%] tests/project/test_config.py::TestScripts::test_command_expansion_basic PASSED [ 83%] tests/project/test_config.py::TestScripts::test_command_expansion_circular_inheritance PASSED [ 84%] tests/project/test_config.py::TestScripts::test_multiple_commands_not_string PASSED [ 84%] tests/project/test_config.py::TestScripts::test_single_commands PASSED [ 84%] tests/project/test_config.py::TestScripts::test_multiple_commands PASSED [ 84%] tests/project/test_config.py::TestScripts::test_command_expansion_multiple_nested_ignore_exit_code PASSED [ 84%] tests/project/test_config.py::TestScripts::test_not_table PASSED [ 84%] tests/project/test_config.py::TestScripts::test_name_contains_spaces PASSED [ 84%] tests/project/test_config.py::TestScripts::test_command_expansion_multiple_nested PASSED [ 84%] tests/project/test_config.py::TestEnv::test_not_table PASSED [ 84%] tests/cli/config/test_find.py::test_copy PASSED [ 84%] tests/cli/config/test_find.py::test_standard PASSED [ 84%] tests/cli/config/test_find.py::test_pipe_to_editor PASSED [ 84%] tests/env/plugin/test_interface.py::TestPlatforms::test_entry_not_string PASSED [ 84%] tests/env/plugin/test_interface.py::TestPlatforms::test_not_array PASSED [ 84%] tests/env/plugin/test_interface.py::TestPlatforms::test_correct PASSED [ 84%] tests/env/plugin/test_interface.py::TestEnvVars::test_value_not_string PASSED [ 84%] tests/env/plugin/test_interface.py::TestEnvVars::test_correct PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvVars::test_not_table PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvVars::test_context_formatting PASSED [ 85%] tests/env/plugin/test_interface.py::TestDescription::test_correct PASSED [ 85%] tests/env/plugin/test_interface.py::TestDescription::test_not_string PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvVarOption::test_set PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvVarOption::test_unset PASSED [ 85%] tests/env/plugin/test_interface.py::TestDevMode::test_disable PASSED [ 85%] tests/env/plugin/test_interface.py::TestDevMode::test_not_boolean PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvInclude::test_correct PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvInclude::test_not_array PASSED [ 85%] tests/env/plugin/test_interface.py::TestEnvInclude::test_pattern_not_string PASSED [ 85%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_circular_inheritance PASSED [ 85%] tests/env/plugin/test_interface.py::TestScripts::test_single_commands PASSED [ 85%] tests/env/plugin/test_interface.py::TestScripts::test_multiple_commands_not_string PASSED [ 85%] tests/env/plugin/test_interface.py::TestScripts::test_name_contains_spaces PASSED [ 85%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_multiple_nested PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_multiple_nested_ignore_exit_code PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_config_invalid_type PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_multiple_commands PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_not_table PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_basic PASSED [ 86%] tests/env/plugin/test_interface.py::TestScripts::test_command_expansion_modification PASSED [ 86%] tests/env/plugin/test_interface.py::TestFeatures::test_invalid_type PASSED [ 86%] tests/env/plugin/test_interface.py::TestFeatures::test_correct PASSED [ 86%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_empty_string PASSED [ 86%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_undefined PASSED [ 86%] tests/env/plugin/test_interface.py::TestFeatures::test_feature_not_string PASSED [ 86%] tests/env/plugin/test_interface.py::TestEnvExclude::test_pattern_not_string PASSED [ 86%] tests/env/plugin/test_interface.py::TestEnvExclude::test_correct PASSED [ 86%] tests/env/plugin/test_interface.py::TestEnvExclude::test_not_array PASSED [ 86%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-3-command -qqq] PASSED [ 86%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[0-command] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_default_override PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_vars_override PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_default PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_undefined PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_unknown_modifier PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-9000-command -qqq] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[2-command -vv] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[0-command] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[3-command -vvv] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-1-command -q] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[9000-command -vvv] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[9000-command -vvv] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[2-command -vv] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-3-command -qqq] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-1-command -q] PASSED [ 87%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_no_selection PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[1-command -v] PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_default_override PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_no_default PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-2-command -qq] PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[3-command -vvv] PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[-9000-command -qqq] PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_matrix_default PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_args_default PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment[1-command -v] PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_name PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_adjustment_not_integer PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_env_type PASSED [ 88%] tests/env/plugin/test_interface.py::TestContextFormatting::test_verbosity_flag_default[-2-command -qq] PASSED [ 88%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_invalid PASSED [ 88%] tests/env/plugin/test_interface.py::TestDependencies::test_not_array PASSED [ 88%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_not_array PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_invalid PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_unknown_dynamic_feature PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_context_formatting PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_full_dev_mode PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_entry_not_string PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_full PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_extra_entry_not_string PASSED [ 89%] tests/env/plugin/test_interface.py::TestDependencies::test_full_skip_install PASSED [ 89%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_not_array PASSED [ 89%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_correct PASSED [ 89%] tests/env/plugin/test_interface.py::TestPostInstallCommands::test_entry_not_string PASSED [ 89%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_correct PASSED [ 89%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_entry_not_string PASSED [ 89%] tests/env/plugin/test_interface.py::TestPreInstallCommands::test_not_array PASSED [ 89%] tests/env/plugin/test_interface.py::TestSkipInstall::test_not_boolean PASSED [ 89%] tests/env/plugin/test_interface.py::TestSkipInstall::test_enable PASSED [ 90%] tests/backend/utils/test_fs.py::test_path_to_uri PASSED [ 90%] tests/backend/metadata/test_build.py::TestBuildBackend::test_correct PASSED [ 90%] tests/backend/metadata/test_build.py::TestBuildBackend::test_not_string PASSED [ 90%] tests/backend/metadata/test_build.py::TestRequires::test_correct PASSED [ 90%] tests/backend/metadata/test_build.py::TestRequires::test_entry_not_string PASSED [ 90%] tests/backend/metadata/test_build.py::TestRequires::test_not_array PASSED [ 90%] tests/backend/metadata/test_build.py::TestRequires::test_invalid_specifier PASSED [ 90%] tests/backend/metadata/test_build.py::TestRequires::test_correct_complex_type PASSED [ 90%] tests/backend/metadata/test_build.py::TestBackendPath::test_not_array PASSED [ 90%] tests/backend/metadata/test_build.py::TestBackendPath::test_entry_not_string PASSED [ 90%] tests/backend/metadata/test_build.py::TestBackendPath::test_correct PASSED [ 90%] tests/cli/config/test_show.py::test_reveal PASSED [ 90%] tests/cli/dep/test_hash.py::test_plugin_dependencies_unmet PASSED [ 90%] tests/cli/dep/test_hash.py::test_incompatible_environment PASSED [ 90%] tests/cli/dep/test_hash.py::test_project_only PASSED [ 90%] tests/cli/dep/test_hash.py::test_all PASSED [ 91%] tests/backend/dep/test_core.py::test_dependency_git SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_marker_unmet PASSED [ 91%] tests/backend/dep/test_core.py::test_marker_met PASSED [ 91%] tests/backend/dep/test_core.py::test_dependency_git_revision SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_dependency_git_commit SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_extra_met SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_dependency_found SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_no_dependencies PASSED [ 91%] tests/backend/dep/test_core.py::test_dependency_not_found PASSED [ 91%] tests/backend/dep/test_core.py::test_extra_unmet SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_extra_no_dependencies SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_version_unmet SKIPPED (No network connectivity) [ 91%] tests/backend/dep/test_core.py::test_unknown_extra SKIPPED (No network connectivity) [ 91%] tests/backend/metadata/test_custom_hook.py::test_path_not_string PASSED [ 91%] tests/backend/metadata/test_custom_hook.py::test_no_subclass PASSED [ 91%] tests/backend/metadata/test_custom_hook.py::test_nonexistent PASSED [ 92%] tests/backend/metadata/test_custom_hook.py::test_no_path PASSED [ 92%] tests/cli/new/test_new.py::test_licenses_empty PASSED [ 92%] tests/cli/new/test_new.py::test_initialize_fresh PASSED [ 92%] tests/cli/new/test_new.py::test_no_project_name_enables_interactive PASSED [ 92%] tests/cli/new/test_new.py::test_no_project_name_error PASSED [ 92%] tests/cli/new/test_new.py::test_feature_tests_disable PASSED [ 92%] tests/cli/new/test_new.py::test_licenses_multiple PASSED [ 92%] tests/cli/new/test_new.py::test_feature_cli PASSED [ 92%] tests/cli/new/test_new.py::test_feature_ci PASSED [ 92%] tests/cli/new/test_new.py::test_projects_urls_empty PASSED [ 92%] tests/cli/new/test_new.py::test_interactive PASSED [ 92%] tests/cli/new/test_new.py::test_feature_no_src_layout PASSED [ 92%] tests/cli/new/test_new.py::test_initialize_setup_cfg_only PASSED [ 92%] tests/cli/new/test_new.py::test_projects_urls_space_in_label PASSED [ 92%] tests/cli/new/test_new.py::test_initialize_update PASSED [ 92%] tests/cli/new/test_new.py::TestErrors::test_no_plugins_found PASSED [ 93%] tests/cli/new/test_new.py::TestErrors::test_some_not_plugins_found PASSED [ 93%] tests/cli/new/test_new.py::TestErrors::test_path_not_empty PASSED [ 93%] tests/cli/new/test_new.py::TestErrors::test_path_is_file PASSED [ 93%] tests/cli/dep/show/test_table.py::test_incompatible_environment PASSED [ 93%] tests/cli/dep/show/test_table.py::test_plugin_dependencies_unmet PASSED [ 93%] tests/cli/dep/show/test_table.py::test_project_only PASSED [ 93%] tests/cli/dep/show/test_table.py::test_optional_columns PASSED [ 93%] tests/cli/dep/show/test_table.py::test_environment_only PASSED [ 93%] tests/cli/clean/test_clean.py::test ERROR [ 93%] tests/cli/build/test_build.py::test_plugin_dependencies_unmet ERROR [ 93%] tests/cli/build/test_build.py::test_no_hooks_env_var ERROR [ 93%] tests/cli/build/test_build.py::test_hooks_only ERROR [ 93%] tests/cli/build/test_build.py::test_no_hooks ERROR [ 93%] tests/cli/build/test_build.py::test_incompatible_environment PASSED [ 93%] tests/cli/build/test_build.py::test_explicit_directory ERROR [ 93%] tests/cli/build/test_build.py::test_clean_only_hooks_only ERROR [ 94%] tests/cli/build/test_build.py::test_clean_only ERROR [ 94%] tests/cli/build/test_build.py::test_explicit_directory_env_var ERROR [ 94%] tests/cli/build/test_build.py::test_clean_env_var ERROR [ 94%] tests/cli/build/test_build.py::test_clean_only_no_hooks ERROR [ 94%] tests/cli/build/test_build.py::test_unknown_targets ERROR [ 94%] tests/cli/build/test_build.py::test_build_dependencies SKIPPED (No network connectivity) [ 94%] tests/cli/build/test_build.py::test_explicit_targets ERROR [ 94%] tests/cli/build/test_build.py::test_shipped SKIPPED (No network connectivity) [ 94%] tests/cli/build/test_build.py::test_clean_hooks_after_env_var ERROR [ 94%] tests/cli/build/test_build.py::test_hooks_only_env_var ERROR [ 94%] tests/cli/build/test_build.py::test_backend_not_build_dependency ERROR [ 94%] tests/cli/build/test_build.py::test_extensions_only ERROR [ 94%] tests/cli/build/test_build.py::test_clean_hooks_after ERROR [ 94%] tests/cli/build/test_build.py::test_mutually_exclusive_hook_options ERROR [ 94%] tests/cli/build/test_build.py::test_clean ERROR [ 94%] tests/cli/build/test_build.py::test_backend_not_build_system ERROR [ 95%] tests/cli/build/test_build.py::test_debug_verbosity ERROR [ 95%] tests/cli/config/test_explore.py::test_call PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_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_plugin_config PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_config_overrides_plugin_config PASSED [ 95%] tests/publish/plugin/test_interface.py::TestDisable::test_project_config_not_boolean PASSED [ 95%] tests/backend/licenses/test_supported.py::test_exceptions PASSED [ 95%] tests/backend/licenses/test_supported.py::test_licenses PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_recurse[setup.py] PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_recurse[pyproject.toml] PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_no_path[setup.py] PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_no_project PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_direct[setup.py] PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_no_path[pyproject.toml] PASSED [ 95%] tests/project/test_core.py::TestFindProjectRoot::test_direct[pyproject.toml] PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_basic_string PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs_null_dir PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs_not_directory PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_complex_null_location PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_dirs PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_empty_string PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_no_project_no_project_dirs PASSED [ 96%] tests/project/test_core.py::TestLoadProjectFromConfig::test_project_complex PASSED [ 96%] tests/project/test_core.py::TestChosenName::test_cwd PASSED [ 96%] tests/project/test_core.py::TestChosenName::test_selected PASSED [ 96%] tests/project/test_core.py::TestLocation::test_no_project PASSED [ 96%] tests/project/test_core.py::TestLocation::test_project[setup.py] PASSED [ 96%] tests/project/test_core.py::TestLocation::test_project[pyproject.toml] PASSED [ 96%] tests/cli/env/test_show.py::test_plugin_dependencies_unmet PASSED [ 96%] tests/cli/env/test_show.py::test_single_and_matrix PASSED [ 96%] tests/cli/env/test_show.py::test_context_formatting PASSED [ 97%] tests/cli/env/test_show.py::test_optional_columns PASSED [ 97%] tests/cli/env/test_show.py::test_single_only PASSED [ 97%] tests/cli/env/test_show.py::test_specific PASSED [ 97%] tests/cli/env/test_show.py::test_all_matrix_types_with_single PASSED [ 97%] tests/cli/env/test_show.py::test_specific_unknown PASSED [ 97%] tests/utils/test_structures.py::TestEnvVars::test_include PASSED [ 97%] tests/utils/test_structures.py::TestEnvVars::test_exclude PASSED [ 97%] tests/utils/test_structures.py::TestEnvVars::test_restoration PASSED [ 97%] tests/utils/test_structures.py::TestEnvVars::test_precedence PASSED [ 97%] tests/utils/test_structures.py::TestEnvVars::test_set PASSED [ 97%] tests/cli/config/test_restore.py::test_allow_invalid_config PASSED [ 97%] tests/cli/config/test_restore.py::test_standard PASSED [ 97%] tests/backend/builders/test_sdist.py::test_class PASSED [ 97%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_classifiers PASSED [ 97%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_name PASSED [ 97%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_name PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_dependencies_extra PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_entry_points PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_email PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_multiple PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_name_and_email PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_all PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_readme PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_packages PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_scripts PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_description PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_gui_scripts PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_optional_dependencies PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_name_and_email PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_dependencies PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_authors_multiple PASSED [ 98%] tests/backend/builders/test_sdist.py::TestConstructSetupPyFile::test_maintainers_email PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_project_file PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_license_files PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_project_file_always_included PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_include_readme PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_readme_always_included PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_config_file_always_included PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_no_strict_naming PASSED [ 99%] tests/backend/builders/test_sdist.py::TestBuildStandard::test_license_files_always_included PASSED [ 99%] tests/backend/builders/test_sdist.py::TestCoreMetadataConstructor::test_unknown PASSED [ 99%] tests/backend/builders/test_sdist.py::TestCoreMetadataConstructor::test_not_string PASSED [ 99%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target_not_boolean PASSED [ 99%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target PASSED [ 99%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_global_not_boolean PASSED [ 99%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_target_overrides_global PASSED [ 99%] tests/backend/builders/test_sdist.py::TestStrictNaming::test_global PASSED [ 99%] tests/backend/builders/test_sdist.py::TestSupportLegacy::test_target PASSED [100%] ==================================== ERRORS ==================================== ______ ERROR at setup of TestBuildDependenciesInstalled.test_field_readme ______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _____ ERROR at setup of TestBuildDependenciesInstalled.test_field_complex ______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ______ ERROR at setup of TestBuildDependenciesInstalled.test_field_string ______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______ ERROR at setup of TestBuildDependenciesMissing.test_field_readme _______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _ ERROR at setup of TestBuildDependenciesMissing.test_plugin_dependencies_unmet _ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______ ERROR at setup of TestBuildDependenciesMissing.test_field_string _______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ______ ERROR at setup of TestBuildDependenciesMissing.test_field_complex _______ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______________ ERROR at setup of test_plugin_dependencies_unmet _______________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ________ ERROR at setup of test_show_dynamic_missing_build_dependencies ________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ____________________________ ERROR at setup of test ____________________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______________ ERROR at setup of test_plugin_dependencies_unmet _______________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ___________________ ERROR at setup of test_no_hooks_env_var ____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ______________________ ERROR at setup of test_hooks_only _______________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______________________ ERROR at setup of test_no_hooks ________________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError __________________ ERROR at setup of test_explicit_directory ___________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _________________ ERROR at setup of test_clean_only_hooks_only _________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ______________________ ERROR at setup of test_clean_only _______________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ______________ ERROR at setup of test_explicit_directory_env_var _______________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _____________________ ERROR at setup of test_clean_env_var _____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError __________________ ERROR at setup of test_clean_only_no_hooks __________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ____________________ ERROR at setup of test_unknown_targets ____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ___________________ ERROR at setup of test_explicit_targets ____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______________ ERROR at setup of test_clean_hooks_after_env_var _______________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError __________________ ERROR at setup of test_hooks_only_env_var ___________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _____________ ERROR at setup of test_backend_not_build_dependency ______________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ____________________ ERROR at setup of test_extensions_only ____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ___________________ ERROR at setup of test_clean_hooks_after ___________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ____________ ERROR at setup of test_mutually_exclusive_hook_options ____________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _________________________ ERROR at setup of test_clean _________________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError _______________ ERROR at setup of test_backend_not_build_system ________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError ____________________ ERROR at setup of test_debug_verbosity ____________________ request = > mocker = @pytest.fixture def mock_backend_process(request, mocker): if 'allow_backend_process' in request.keywords: yield False return line_queue = [] def mock_process_api(api): def mock_process(command, **kwargs): if not isinstance(command, list) or command[1:4] != ['-u', '-m', 'hatchling']: # no cov return api(command, **kwargs) line_queue.clear() original_args = sys.argv try: sys.argv = command[3:] mock = mocker.MagicMock() try: # The builder sets process-wide environment variables with EnvVars(): hatchling() except SystemExit as e: mock.returncode = e.code else: mock.returncode = 0 mock.stdout = BytesIO(''.join(line_queue).encode('utf-8')) return mock finally: sys.argv = original_args return mock_process mocker.patch('subprocess.Popen', side_effect=mock_process_api(subprocess.Popen)) mocker.patch('subprocess.run', side_effect=mock_process_api(subprocess.run)) > mocker.patch('hatchling.bridge.app._send_app_command', side_effect=lambda cmd: line_queue.append(f'{cmd}\n')) /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/conftest.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:374: in __call__ return self._start_patch( /usr/lib/python3.10/site-packages/pytest_mock/plugin.py:183: in _start_patch mocked = p.start() # type: unittest.mock.MagicMock /usr/lib64/python3.10/unittest/mock.py:1595: in start result = self.__enter__() /usr/lib64/python3.10/unittest/mock.py:1447: in __enter__ original, local = self.get_original() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_original(self): target = self.getter() name = self.attribute original = DEFAULT local = False try: original = target.__dict__[name] except (AttributeError, KeyError): original = getattr(target, name, DEFAULT) else: local = True if name in _builtins and isinstance(target, ModuleType): self.create = True if not self.create and original is DEFAULT: > raise AttributeError( "%s does not have the attribute %r" % (target, name) ) E AttributeError: does not have the attribute '_send_app_command' /usr/lib64/python3.10/unittest/mock.py:1420: AttributeError =================================== FAILURES =================================== ________________ TestEntryPoints.test_forbidden_fields[scripts] ________________ self = isolation = Path('/tmp/tmphqs4co8k'), field = 'scripts' @pytest.mark.parametrize('field', ['scripts', 'gui-scripts']) def test_forbidden_fields(self, isolation, field): metadata = ProjectMetadata(str(isolation), None, {'project': {'entry-points': {field: 'foo'}}}) with pytest.raises( ValueError, match=( f'Field `{field}` must be defined as `project.{field}` instead of in the `project.entry-points` table' ), ): > _ = metadata.core.entry_points /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_core.py:1093: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @property def entry_points(self) -> dict[str, dict[str, str]]: """ https://peps.python.org/pep-0621/#entry-points """ if self._entry_points is None: if 'entry-points' in self.config: defined_entry_point_groups = self.config['entry-points'] if 'entry-points' in self.dynamic: message = ( 'Metadata field `entry-points` cannot be both statically defined and ' 'listed in field `project.dynamic`' ) raise ValueError(message) else: defined_entry_point_groups = {} if not isinstance(defined_entry_point_groups, dict): message = 'Field `project.entry-points` must be a table' raise TypeError(message) for forbidden_field, expected_field in (('console_scripts', 'scripts'), ('gui-scripts', 'gui-scripts')): if forbidden_field in defined_entry_point_groups: message = ( f'Field `{forbidden_field}` must be defined as `project.{expected_field}` ' f'instead of in the `project.entry-points` table' ) raise ValueError(message) entry_point_groups = {} for group, entry_point_data in sorted(defined_entry_point_groups.items()): if not isinstance(entry_point_data, dict): message = f'Field `project.entry-points.{group}` must be a table' > raise TypeError(message) E TypeError: Field `project.entry-points.scripts` must be a table /usr/lib/python3.10/site-packages/hatchling/metadata/core.py:1134: TypeError __________ TestCoreMetadataV22.test_all[construct_metadata_file_2_2] ___________ self = constructor = isolation = Path('/tmp/tmphqs4co8k') helpers = temp_dir = Path('/tmp/tmpue9rz8pp') def test_all(self, constructor, isolation, helpers, temp_dir): metadata = ProjectMetadata( str(temp_dir), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'description': 'foo', 'urls': {'foo': 'bar', 'bar': 'baz'}, 'authors': [{'email': 'bar@domain', 'name': 'foo'}], 'maintainers': [{'email': 'bar@domain', 'name': 'foo'}], 'license': {'text': 'foo\nbar'}, 'keywords': ['foo', 'bar'], 'classifiers': [ 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.9', ], 'requires-python': '>=1,<2', 'dependencies': ['foo==1', 'bar==5'], 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], 'feature3': ['baz @ file:///path/to/project'], }, 'readme': {'content-type': 'text/markdown', 'text': 'test content\n'}, }, 'tool': {'hatch': {'metadata': {'allow-direct-references': True}}}, }, ) (temp_dir / 'LICENSE.txt').touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.2 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License: foo bar License-File: LICENSE.txt Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E assert "Metadata-Version: 2.2\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense: foo\n bar\nLicense-File: LICENSE.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" == "Metadata-Version: 2.2\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense: foo\n bar\nLicense-File: LICENSE.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" E Metadata-Version: 2.2 E Name: My.App E Version: 0.1.0 E Summary: foo E Project-URL: foo, bar E Project-URL: bar, baz E Author-email: foo E Maintainer-email: foo E License: foo E bar E License-File: LICENSE.txt E Keywords: bar,foo E Classifier: Programming Language :: Python :: 3.9 E Classifier: Programming Language :: Python :: 3.11 E Requires-Python: <2,>=1 E Requires-Dist: bar==5 E Requires-Dist: foo==1 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + E Provides-Extra: feature3 E Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' E Description-Content-Type: text/markdown E E test content /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:1148: AssertionError _ TestCoreMetadataV22.test_optional_dependencies[construct_metadata_file_2_2] __ self = constructor = isolation = Path('/tmp/tmphqs4co8k') helpers = def test_optional_dependencies(self, constructor, isolation, helpers): metadata = ProjectMetadata( str(isolation), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], }, } }, ) > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.2 Name: My.App Version: 0.1.0 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' """ ) E assert "Metadata-Version: 2.2\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\n" == "Metadata-Version: 2.2\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\n" E Metadata-Version: 2.2 E Name: My.App E Version: 0.1.0 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:1059: AssertionError __________ TestCoreMetadataV21.test_all[construct_metadata_file_2_1] ___________ self = constructor = isolation = Path('/tmp/tmphqs4co8k') helpers = temp_dir = Path('/tmp/tmpwm9xz6qw') def test_all(self, constructor, isolation, helpers, temp_dir): metadata = ProjectMetadata( str(temp_dir), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'description': 'foo', 'urls': {'foo': 'bar', 'bar': 'baz'}, 'authors': [{'email': 'bar@domain', 'name': 'foo'}], 'maintainers': [{'email': 'bar@domain', 'name': 'foo'}], 'license': {'text': 'foo\nbar'}, 'keywords': ['foo', 'bar'], 'classifiers': [ 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.9', ], 'requires-python': '>=1,<2', 'dependencies': ['foo==1', 'bar==5'], 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], 'feature3': ['baz @ file:///path/to/project'], }, 'readme': {'content-type': 'text/markdown', 'text': 'test content\n'}, }, 'tool': {'hatch': {'metadata': {'allow-direct-references': True}}}, }, ) (temp_dir / 'LICENSE.txt').touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.1 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License: foo bar License-File: LICENSE.txt Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E assert "Metadata-Version: 2.1\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense: foo\n bar\nLicense-File: LICENSE.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" == "Metadata-Version: 2.1\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense: foo\n bar\nLicense-File: LICENSE.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" E Metadata-Version: 2.1 E Name: My.App E Version: 0.1.0 E Summary: foo E Project-URL: foo, bar E Project-URL: bar, baz E Author-email: foo E Maintainer-email: foo E License: foo E bar E License-File: LICENSE.txt E Keywords: bar,foo E Classifier: Programming Language :: Python :: 3.9 E Classifier: Programming Language :: Python :: 3.11 E Requires-Python: <2,>=1 E Requires-Dist: bar==5 E Requires-Dist: foo==1 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + E Provides-Extra: feature3 E Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' E Description-Content-Type: text/markdown E E test content /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:726: AssertionError _ TestCoreMetadataV21.test_optional_dependencies[construct_metadata_file_2_1] __ self = constructor = isolation = Path('/tmp/tmphqs4co8k') helpers = def test_optional_dependencies(self, constructor, isolation, helpers): metadata = ProjectMetadata( str(isolation), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], }, } }, ) > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.1 Name: My.App Version: 0.1.0 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' """ ) E assert "Metadata-Version: 2.1\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\n" == "Metadata-Version: 2.1\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\n" E Metadata-Version: 2.1 E Name: My.App E Version: 0.1.0 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:637: AssertionError __________ TestCoreMetadataV23.test_all[construct_metadata_file_2_3] ___________ self = constructor = temp_dir = Path('/tmp/tmp6l3h1d_2') helpers = def test_all(self, constructor, temp_dir, helpers): metadata = ProjectMetadata( str(temp_dir), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'description': 'foo', 'urls': {'foo': 'bar', 'bar': 'baz'}, 'authors': [{'email': 'bar@domain', 'name': 'foo'}], 'maintainers': [{'email': 'bar@domain', 'name': 'foo'}], 'license': 'mit or apache-2.0', 'license-files': {'globs': ['LICENSES/*']}, 'keywords': ['foo', 'bar'], 'classifiers': [ 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.9', ], 'requires-python': '>=1,<2', 'dependencies': ['foo==1', 'bar==5'], 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], 'feature3': ['baz @ file:///path/to/project'], }, 'readme': {'content-type': 'text/markdown', 'text': 'test content\n'}, }, 'tool': {'hatch': {'metadata': {'allow-direct-references': True}}}, }, ) licenses_dir = temp_dir / 'LICENSES' licenses_dir.mkdir() (licenses_dir / 'MIT.txt').touch() (licenses_dir / 'Apache-2.0.txt').touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.3 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License-Expression: MIT OR Apache-2.0 License-File: LICENSES/Apache-2.0.txt License-File: LICENSES/MIT.txt Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E assert "Metadata-Version: 2.3\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense-Expression: MIT OR Apache-2.0\nLicense-File: LICENSES/Apache-2.0.txt\nLicense-File: LICENSES/MIT.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" == "Metadata-Version: 2.3\nName: My.App\nVersion: 0.1.0\nSummary: foo\nProject-URL: foo, bar\nProject-URL: bar, baz\nAuthor-email: foo \nMaintainer-email: foo \nLicense-Expression: MIT OR Apache-2.0\nLicense-File: LICENSES/Apache-2.0.txt\nLicense-File: LICENSES/MIT.txt\nKeywords: bar,foo\nClassifier: Programming Language :: Python :: 3.9\nClassifier: Programming Language :: Python :: 3.11\nRequires-Python: <2,>=1\nRequires-Dist: bar==5\nRequires-Dist: foo==1\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\nProvides-Extra: feature3\nRequires-Dist: baz@ file:///path/to/project ; extra == 'feature3'\nDescription-Content-Type: text/markdown\n\ntest content\n" E Metadata-Version: 2.3 E Name: My.App E Version: 0.1.0 E Summary: foo E Project-URL: foo, bar E Project-URL: bar, baz E Author-email: foo E Maintainer-email: foo E License-Expression: MIT OR Apache-2.0 E License-File: LICENSES/Apache-2.0.txt E License-File: LICENSES/MIT.txt E Keywords: bar,foo E Classifier: Programming Language :: Python :: 3.9 E Classifier: Programming Language :: Python :: 3.11 E Requires-Python: <2,>=1 E Requires-Dist: bar==5 E Requires-Dist: foo==1 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + E Provides-Extra: feature3 E Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' E Description-Content-Type: text/markdown E E test content /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:1581: AssertionError _ TestCoreMetadataV23.test_optional_dependencies[construct_metadata_file_2_3] __ self = constructor = isolation = Path('/tmp/tmphqs4co8k') helpers = def test_optional_dependencies(self, constructor, isolation, helpers): metadata = ProjectMetadata( str(isolation), None, { 'project': { 'name': 'My.App', 'version': '0.1.0', 'optional-dependencies': { 'feature2': ['foo==1; python_version < "3"', 'bar==5'], 'feature1': ['foo==1', 'bar==5; python_version < "3"'], }, } }, ) > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.3 Name: My.App Version: 0.1.0 Provides-Extra: feature1 Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' """ ) E assert "Metadata-Version: 2.3\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; (python_version < '3') and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; (python_version < '3') and extra == 'feature2'\n" == "Metadata-Version: 2.3\nName: My.App\nVersion: 0.1.0\nProvides-Extra: feature1\nRequires-Dist: bar==5; python_version < '3' and extra == 'feature1'\nRequires-Dist: foo==1; extra == 'feature1'\nProvides-Extra: feature2\nRequires-Dist: bar==5; extra == 'feature2'\nRequires-Dist: foo==1; python_version < '3' and extra == 'feature2'\n" E Metadata-Version: 2.3 E Name: My.App E Version: 0.1.0 E Provides-Extra: feature1 E - Requires-Dist: bar==5; python_version < '3' and extra == 'feature1' E + Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' E ? + + E Requires-Dist: foo==1; extra == 'feature1' E Provides-Extra: feature2 E Requires-Dist: bar==5; extra == 'feature2' E - Requires-Dist: foo==1; python_version < '3' and extra == 'feature2' E + Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' E ? + + /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/metadata/test_spec.py:1488: AssertionError _____________ TestSources.test_global_mapping_source_empty_string ______________ self = isolation = Path('/tmp/tmphqs4co8k') def test_global_mapping_source_empty_string(self, isolation): config = {'tool': {'hatch': {'build': {'sources': {'': 'renamed'}}}}} builder = MockBuilder(str(isolation), config=config) > with pytest.raises(ValueError, match='Source #1 in field `tool.hatch.build.sources` cannot be an empty string'): E Failed: DID NOT RAISE /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/test_config.py:687: Failed _____________ TestSources.test_target_mapping_source_empty_string ______________ self = isolation = Path('/tmp/tmphqs4co8k') def test_target_mapping_source_empty_string(self, isolation): config = {'tool': {'hatch': {'build': {'targets': {'foo': {'sources': {'': 'renamed'}}}}}}} builder = MockBuilder(str(isolation), config=config) builder.PLUGIN_NAME = 'foo' > with pytest.raises( ValueError, match='Source #1 in field `tool.hatch.build.targets.foo.sources` cannot be an empty string' ): E Failed: DID NOT RAISE /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/test_config.py:760: Failed __________ TestBuildStandard.test_explicit_selection_with_src_layout ___________ self = hatch = helpers = temp_dir = Path('/tmp/tmp9ip09ffo') def test_explicit_selection_with_src_layout(self, hatch, helpers, temp_dir): project_name = 'My.App' with temp_dir.as_cwd(): result = hatch('new', project_name) assert result.exit_code == 0, result.output project_path = temp_dir / 'my-app' config = { 'project': {'name': project_name, 'dynamic': ['version']}, 'tool': { 'hatch': { 'version': {'path': 'src/my_app/__about__.py'}, 'build': { 'targets': { 'wheel': { 'versions': ['standard'], 'artifacts': ['README.md'], 'only-include': ['src/my_app'], 'sources': ['src'], } }, }, }, }, } builder = WheelBuilder(str(project_path), config=config) build_path = project_path / 'dist' build_path.mkdir() with project_path.as_cwd(): > artifacts = list(builder.build(str(build_path))) E TypeError: BuilderInterface.build() takes 1 positional argument but 2 were given /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/test_wheel.py:2660: TypeError ____________ TestBuildStandard.test_editable_sources_rewrite_error _____________ self = hatch = helpers = temp_dir = Path('/tmp/tmpj5srgzuo') def test_editable_sources_rewrite_error(self, hatch, helpers, temp_dir): project_name = 'My.App' with temp_dir.as_cwd(): result = hatch('new', project_name) assert result.exit_code == 0, result.output project_path = temp_dir / 'my-app' config = { 'project': {'name': project_name, 'dynamic': ['version']}, 'tool': { 'hatch': { 'version': {'path': 'src/my_app/__about__.py'}, 'build': { 'targets': { 'wheel': { 'versions': ['editable'], 'only-include': ['src/my_app'], 'sources': {'src/my_app': 'namespace/plugins/my_app'}, } }, }, }, }, } builder = WheelBuilder(str(project_path), config=config) build_path = project_path / 'dist' build_path.mkdir() with project_path.as_cwd(), pytest.raises( ValueError, match=( 'Dev mode installations are unsupported when any path rewrite in the `sources` option ' 'changes a prefix rather than removes it, see: ' 'https://github.com/pfmoore/editables/issues/20' ), ): > list(builder.build(str(build_path))) E TypeError: BuilderInterface.build() takes 1 positional argument but 2 were given /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/test_wheel.py:2819: TypeError _____________________ TestBuildStandard.test_single_module _____________________ self = hatch = helpers = temp_dir = Path('/tmp/tmp0d4qx2r_') config_file = def test_single_module(self, hatch, helpers, temp_dir, config_file): config_file.model.template.plugins['default']['src-layout'] = False config_file.save() project_name = 'My.App' with temp_dir.as_cwd(): result = hatch('new', project_name) assert result.exit_code == 0, result.output project_path = temp_dir / 'my-app' (project_path / 'my_app').remove() (project_path / 'my_app.py').touch() config = {'project': {'name': project_name, 'version': '0.0.1'}} builder = WheelBuilder(str(project_path), config=config) build_path = project_path / 'dist' build_path.mkdir() with project_path.as_cwd(): > artifacts = list(builder.build(str(build_path))) E TypeError: BuilderInterface.build() takes 1 positional argument but 2 were given /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/test_wheel.py:2705: TypeError ______________________ TestDirectoryRecursion.test_order _______________________ self = temp_dir = Path('/tmp/tmpt91ic58y') def test_order(self, temp_dir): project_dir = temp_dir / 'project' project_dir.ensure_dir_exists() with project_dir.as_cwd(): config = { 'tool': { 'hatch': { 'build': { 'sources': ['src'], 'include': ['src/foo', 'bar', 'README.md', 'tox.ini'], 'exclude': ['**/foo/baz.txt'], 'force-include': { '../external1.txt': 'nested/target2.txt', '../external2.txt': 'nested/target1.txt', '../external': 'nested', # Should be silently ignored '../missing': 'missing', }, } } } } builder = MockBuilder(str(project_dir), config=config) foo = project_dir / 'src' / 'foo' foo.ensure_dir_exists() (foo / 'bar.txt').touch() (foo / 'baz.txt').touch() bar = project_dir / 'bar' bar.ensure_dir_exists() (bar / 'foo.txt').touch() # Excluded for name in EXCLUDED_DIRECTORIES: excluded_dir = bar / name excluded_dir.ensure_dir_exists() (excluded_dir / 'file.ext').touch() (project_dir / 'README.md').touch() (project_dir / 'tox.ini').touch() (temp_dir / 'external1.txt').touch() (temp_dir / 'external2.txt').touch() external = temp_dir / 'external' external.ensure_dir_exists() (external / 'external1.txt').touch() (external / 'external2.txt').touch() # Excluded for name in EXCLUDED_DIRECTORIES: excluded_dir = external / name excluded_dir.ensure_dir_exists() (excluded_dir / 'file.ext').touch() > assert [(f.path, f.distribution_path) for f in builder.recurse_included_files()] == [ (str(project_dir / 'README.md'), 'README.md'), (str(project_dir / 'tox.ini'), 'tox.ini'), ( str(project_dir / 'bar' / 'foo.txt'), f'bar{path_sep}foo.txt', ), (str(project_dir / 'src' / 'foo' / 'bar.txt'), f'foo{path_sep}bar.txt'), (str(temp_dir / 'external' / 'external1.txt'), f'nested{path_sep}external1.txt'), (str(temp_dir / 'external' / 'external2.txt'), f'nested{path_sep}external2.txt'), (str(temp_dir / 'external2.txt'), f'nested{path_sep}target1.txt'), (str(temp_dir / 'external1.txt'), f'nested{path_sep}target2.txt'), ] /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/plugin/test_interface.py:278: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/plugin/test_interface.py:278: in assert [(f.path, f.distribution_path) for f in builder.recurse_included_files()] == [ /usr/lib/python3.10/site-packages/hatchling/builders/plugin/interface.py:177: in recurse_included_files yield from self.recurse_forced_files(self.config.get_force_include()) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = inclusion_map = {'/tmp/tmpt91ic58y/external': 'nested', '/tmp/tmpt91ic58y/external1.txt': 'nested/target2.txt', '/tmp/tmpt91ic58y/external2.txt': 'nested/target1.txt', '/tmp/tmpt91ic58y/missing': 'missing'} def recurse_forced_files(self, inclusion_map: dict[str, str]) -> Iterable[IncludedFile]: for source, target_path in inclusion_map.items(): external = not source.startswith(self.root) if os.path.isfile(source): yield IncludedFile( source, '' if external else os.path.relpath(source, self.root), self.config.get_distribution_path(target_path), ) elif os.path.isdir(source): for root, dirs, files in safe_walk(source): relative_directory = get_relative_path(root, source) dirs[:] = sorted(d for d in dirs if d not in EXCLUDED_DIRECTORIES) files.sort() for f in files: relative_file_path = os.path.join(target_path, relative_directory, f) distribution_path = self.config.get_distribution_path(relative_file_path) if not self.config.path_is_reserved(distribution_path): yield IncludedFile( os.path.join(root, f), '' if external else relative_file_path, distribution_path, ) else: msg = f'Forced include not found: {source}' > raise FileNotFoundError(msg) E FileNotFoundError: Forced include not found: /tmp/tmpt91ic58y/missing /usr/lib/python3.10/site-packages/hatchling/builders/plugin/interface.py:231: FileNotFoundError __________________ TestBuildValidation.test_invalid_metadata ___________________ self = isolation = Path('/tmp/tmphqs4co8k') def test_invalid_metadata(self, isolation): config = { 'project': {'name': 'foo', 'version': '0.1.0', 'dynamic': ['version']}, 'tool': {'hatch': {'build': {'targets': {'foo': {'versions': ['1']}}}}}, } builder = MockBuilder(str(isolation), config=config) builder.PLUGIN_NAME = 'foo' builder.get_version_api = lambda: {'1': lambda *args, **kwargs: ''} with pytest.raises( ValueError, match='Metadata field `version` cannot be both statically defined and listed in field `project.dynamic`', ): > next(builder.build(str(isolation))) E TypeError: BuilderInterface.build() takes 1 positional argument but 2 were given /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/plugin/test_interface.py:136: TypeError ___________________ TestBuildValidation.test_unknown_version ___________________ self = isolation = Path('/tmp/tmphqs4co8k') def test_unknown_version(self, isolation): config = { 'project': {'name': 'foo', 'version': '0.1.0'}, 'tool': {'hatch': {'build': {'targets': {'foo': {'versions': ['1']}}}}}, } builder = MockBuilder(str(isolation), config=config) builder.PLUGIN_NAME = 'foo' builder.get_version_api = lambda: {'1': str} with pytest.raises(ValueError, match='Unknown versions for target `foo`: 42, 9000'): > next(builder.build(str(isolation), versions=['9000', '42'])) E TypeError: BuilderInterface.build() takes 1 positional argument but 2 positional arguments (and 1 keyword-only argument) were given /builddir/build/BUILD/hatch-hatch-v1.7.0/tests/backend/builders/plugin/test_interface.py:121: TypeError =========================== short test summary info ============================ FAILED tests/backend/metadata/test_core.py::TestEntryPoints::test_forbidden_fields[scripts] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_all[construct_metadata_file_2_2] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_optional_dependencies[construct_metadata_file_2_2] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_all[construct_metadata_file_2_1] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_optional_dependencies[construct_metadata_file_2_1] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_all[construct_metadata_file_2_3] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_optional_dependencies[construct_metadata_file_2_3] FAILED tests/backend/builders/test_config.py::TestSources::test_global_mapping_source_empty_string FAILED tests/backend/builders/test_config.py::TestSources::test_target_mapping_source_empty_string FAILED tests/backend/builders/test_wheel.py::TestBuildStandard::test_explicit_selection_with_src_layout FAILED tests/backend/builders/test_wheel.py::TestBuildStandard::test_editable_sources_rewrite_error FAILED tests/backend/builders/test_wheel.py::TestBuildStandard::test_single_module FAILED tests/backend/builders/plugin/test_interface.py::TestDirectoryRecursion::test_order FAILED tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_invalid_metadata FAILED tests/backend/builders/plugin/test_interface.py::TestBuildValidation::test_unknown_version ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_readme ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_complex ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesInstalled::test_field_string ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_readme ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_plugin_dependencies_unmet ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_string ERROR tests/cli/project/test_metadata.py::TestBuildDependenciesMissing::test_field_complex ERROR tests/cli/version/test_version.py::test_plugin_dependencies_unmet - Att... ERROR tests/cli/version/test_version.py::test_show_dynamic_missing_build_dependencies ERROR tests/cli/clean/test_clean.py::test - AttributeError: