forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Michał Górny <[email protected]>
- Loading branch information
Showing
3 changed files
with
200 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST pip-20.3.3.tar.gz 8757085 BLAKE2B dce60cd59669929957715d6be70da4924c3a89bb4129f0972516bde8ccca751b4f327dd2f44a06cd0b48d092f8d520d1ec236ee812f768282004b34f1fabb798 SHA512 362d20e5d2665fa6211cf3836ca02a0340fb34ecde1d5902eecae744eb655d7dcfed0bd464e9db186b87b63a7aaf275e43645cf6321bdddd44b62787de84d87b | ||
DIST pip-21.0.tar.gz 8770962 BLAKE2B 5a246e40a8b2ea5ceda27bec27e9bb6390613e28c301ed79fd95886c850a29ee1c0261f2dd69f1c2485dd72ec3010f61c4e783ed707a40630534790eba748c4b SHA512 ac77a7204423f1fdc3a4d328dab1860258efccde0123cff3217f357637c4ce3d85772ab81a230122ff813be2cfa40f2862e5d499390289efe1dcde3a31a42264 | ||
DIST setuptools-44.0.0-py2.py3-none-any.whl 583230 BLAKE2B 823e6792471660f247e30a938aa869d345a63db7294e5f9b4bd88f15a7694779011d29740fe317149620985f705fc6e18cbb07a18e5680cc11d7c229ffbc74f6 SHA512 7006fd303181afbeeec0e30cafb9fd1e4d3c6f55cfdd6343fedbc32b17dbb96b3d96ae37f4db27bfb168738727474cf425904ec280ff1d2b789fc48077a8fa84 | ||
DIST wheel-0.34.2-py2.py3-none-any.whl 26502 BLAKE2B 3a1bd4571c582245b60ff33c9bf74ff8a2ebafb26e56fc7b9bd215058d059b6bd13bbe21ce46002af257813a54126f27e19253f211e21c4548c7cf84cd15caf7 SHA512 4f1a44f4691ed8baad777d7874f7f4da96a5019eb485fd3a9eed9259aa2a9d5acccc6dc63a72128664347c64ee039a6076c6ca9c3b75a1f94457967864e522ed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
From 7f61ba983025cbfab7b7b810b13f1a89cb503568 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]> | ||
Date: Wed, 29 Jul 2020 07:42:25 +0200 | ||
Subject: [PATCH] Disable coverage testing support inside test venvs | ||
|
||
--- | ||
tests/conftest.py | 16 +--------------- | ||
1 file changed, 1 insertion(+), 15 deletions(-) | ||
|
||
diff --git a/tests/conftest.py b/tests/conftest.py | ||
index 0bb69dae6..02da6c573 100644 | ||
--- a/tests/conftest.py | ||
+++ b/tests/conftest.py | ||
@@ -311,13 +311,6 @@ def wheel_install(tmpdir_factory, common_wheels): | ||
'wheel') | ||
|
||
|
||
-@pytest.fixture(scope='session') | ||
-def coverage_install(tmpdir_factory, common_wheels): | ||
- return _common_wheel_editable_install(tmpdir_factory, | ||
- common_wheels, | ||
- 'coverage') | ||
- | ||
- | ||
def install_egg_link(venv, project_name, egg_info_dir): | ||
with open(venv.site / 'easy-install.pth', 'a') as fp: | ||
fp.write(str(egg_info_dir.resolve()) + '\n') | ||
@@ -327,7 +320,7 @@ def install_egg_link(venv, project_name, egg_info_dir): | ||
|
||
@pytest.fixture(scope='session') | ||
def virtualenv_template(request, tmpdir_factory, pip_src, | ||
- setuptools_install, coverage_install): | ||
+ setuptools_install, common_wheels): | ||
|
||
if request.config.getoption('--use-venv'): | ||
venv_type = 'venv' | ||
@@ -351,13 +344,6 @@ def virtualenv_template(request, tmpdir_factory, pip_src, | ||
subprocess.check_call([venv.bin / 'python', 'setup.py', '-q', 'develop'], | ||
cwd=pip_editable) | ||
|
||
- # Install coverage and pth file for executing it in any spawned processes | ||
- # in this virtual environment. | ||
- install_egg_link(venv, 'coverage', coverage_install) | ||
- # zz prefix ensures the file is after easy-install.pth. | ||
- with open(venv.site / 'zz-coverage-helper.pth', 'a') as f: | ||
- f.write('import coverage; coverage.process_startup()') | ||
- | ||
# Drop (non-relocatable) launchers. | ||
for exe in os.listdir(venv.bin): | ||
if not ( | ||
-- | ||
2.30.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
# Copyright 1999-2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
DISTUTILS_USE_SETUPTOOLS=rdepend | ||
PYTHON_COMPAT=( python3_{7..9} pypy3 ) | ||
PYTHON_REQ_USE="ssl(+),threads(+)" | ||
|
||
inherit bash-completion-r1 distutils-r1 | ||
|
||
SETUPTOOLS_PV="44.0.0" | ||
WHEEL_PV="0.34.2" | ||
|
||
DESCRIPTION="Installs python packages -- replacement for easy_install" | ||
HOMEPAGE=" | ||
https://pip.pypa.io/en/stable/ | ||
https://pypi.org/project/pip/ | ||
https://github.com/pypa/pip/" | ||
SRC_URI=" | ||
https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz | ||
test? ( | ||
https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl | ||
https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl | ||
) | ||
" | ||
# PyPI archive does not have tests, so we need to download from GitHub. | ||
# setuptools & wheel .whl files are required for testing, exact version is not very important. | ||
|
||
LICENSE="MIT" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" | ||
SLOT="0" | ||
IUSE="test -vanilla" | ||
RESTRICT="!test? ( test )" | ||
|
||
RDEPEND=" | ||
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}] | ||
" | ||
BDEPEND=" | ||
${RDEPEND} | ||
test? ( | ||
dev-python/cryptography[${PYTHON_USEDEP}] | ||
dev-python/csv23[${PYTHON_USEDEP}] | ||
dev-python/freezegun[${PYTHON_USEDEP}] | ||
dev-python/mock[${PYTHON_USEDEP}] | ||
dev-python/pretend[${PYTHON_USEDEP}] | ||
dev-python/pytest[${PYTHON_USEDEP}] | ||
dev-python/pyyaml[${PYTHON_USEDEP}] | ||
dev-python/scripttest[${PYTHON_USEDEP}] | ||
<dev-python/virtualenv-20[${PYTHON_USEDEP}] | ||
dev-python/werkzeug[${PYTHON_USEDEP}] | ||
dev-python/wheel[${PYTHON_USEDEP}] | ||
) | ||
" | ||
|
||
python_prepare_all() { | ||
local PATCHES=( | ||
"${FILESDIR}/${PN}-19.3-disable-version-check.patch" | ||
"${FILESDIR}/${PN}-21.0-no-coverage.patch" | ||
) | ||
if ! use vanilla; then | ||
PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" ) | ||
fi | ||
|
||
# TODO | ||
rm tests/functional/test_new_resolver_user.py || die | ||
|
||
distutils-r1_python_prepare_all | ||
|
||
if use test; then | ||
mkdir tests/data/common_wheels/ || die | ||
cp "${DISTDIR}"/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl \ | ||
tests/data/common_wheels/ || die | ||
|
||
cp "${DISTDIR}"/wheel-${WHEEL_PV}-py2.py3-none-any.whl \ | ||
tests/data/common_wheels/ || die | ||
fi | ||
} | ||
|
||
python_test() { | ||
if [[ ${EPYTHON} == pypy* ]]; then | ||
ewarn "Skipping tests on ${EPYTHON} since they are very broken" | ||
return 0 | ||
fi | ||
|
||
# these will be built in to an expression passed to pytest to exclude | ||
local exclude_tests=( | ||
git | ||
svn | ||
bazaar | ||
mercurial | ||
version_check | ||
uninstall_non_local_distutils | ||
pep518_uses_build_env | ||
install_package_with_root | ||
install_editable_with_prefix | ||
install_user_wheel | ||
install_from_current_directory_into_usersite | ||
uninstall_editable_from_usersite | ||
uninstall_from_usersite_with_dist_in_global_site | ||
build_env_isolation | ||
user_config_accepted | ||
# these fail with new setuptools + distutils_install_for_testing | ||
double_install_fail | ||
multiple_exclude_and_normalization | ||
) | ||
|
||
distutils_install_for_testing --via-root | ||
|
||
# generate the expression to exclude failing tests | ||
local exclude_expr | ||
printf -v exclude_expr "or %s " "${exclude_tests[@]}" || die | ||
exclude_expr="not (${exclude_expr#or })" || die | ||
|
||
local -x GENTOO_PIP_TESTING=1 \ | ||
PATH="${TEST_DIR}/scripts:${PATH}" \ | ||
PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib" | ||
|
||
pytest -vv \ | ||
-k "${exclude_expr}" \ | ||
-m "not network" \ | ||
|| die "Tests fail with ${EPYTHON}" | ||
} | ||
|
||
python_install_all() { | ||
# Prevent dbus auto-launch | ||
# https://bugs.gentoo.org/692178 | ||
export DBUS_SESSION_BUS_ADDRESS="disabled:" | ||
|
||
local DOCS=( AUTHORS.txt docs/html/**/*.rst ) | ||
distutils-r1_python_install_all | ||
|
||
COMPLETION="${T}"/completion.tmp | ||
|
||
# 'pip completion' command embeds full $0 into completion script, which confuses | ||
# 'complete' and causes QA warning when running as "${PYTHON} -m pip". | ||
# This trick sets correct $0 while still calling just installed pip. | ||
local pipcmd='import sys; sys.argv[0] = "pip"; import pip.__main__; sys.exit(pip.__main__._main())' | ||
|
||
${PYTHON} -c "${pipcmd}" completion --bash > "${COMPLETION}" || die | ||
newbashcomp "${COMPLETION}" ${PN} | ||
|
||
${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die | ||
insinto /usr/share/zsh/site-functions | ||
newins "${COMPLETION}" _pip | ||
} |