mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-31 10:58:21 -07:00
dev-python/pip-19.3.1-r2: Some cleanups, add py38
Copyright: Sony Interactive Entertainment Inc. Package-Manager: Portage-2.3.80, Repoman-2.3.19 Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
committed by
Patrick McLean
parent
6151eac947
commit
5ff17cb62b
66
dev-python/pip/files/pip-19.3.1-network-tests.patch
Normal file
66
dev-python/pip/files/pip-19.3.1-network-tests.patch
Normal file
@@ -0,0 +1,66 @@
|
||||
diff --git a/news/7359.trivial b/news/7359.trivial
|
||||
new file mode 100644
|
||||
index 000000000..e69de29bb
|
||||
diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
|
||||
index d13c931d0..2e35de3e6 100644
|
||||
--- a/tests/functional/test_freeze.py
|
||||
+++ b/tests/functional/test_freeze.py
|
||||
@@ -721,6 +721,7 @@ def test_freeze_user(script, virtualenv, data):
|
||||
assert 'simple2' not in result.stdout
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_freeze_path(tmpdir, script, data):
|
||||
"""
|
||||
Test freeze with --path.
|
||||
@@ -734,5 +735,6 @@ def test_freeze_path(tmpdir, script, data):
|
||||
_check_output(result.stdout, expected)
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_freeze_path_exclude_user(tmpdir, script, data):
|
||||
"""
|
||||
@@ -756,6 +758,7 @@ def test_freeze_path_exclude_user(tmpdir, script, data):
|
||||
_check_output(result.stdout, expected)
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_freeze_path_multiple(tmpdir, script, data):
|
||||
"""
|
||||
Test freeze with multiple --path arguments.
|
||||
diff --git a/tests/functional/test_install.py b/tests/functional/test_install.py
|
||||
index a9eff081d..ba7a0a55c 100644
|
||||
--- a/tests/functional/test_install.py
|
||||
+++ b/tests/functional/test_install.py
|
||||
@@ -1325,6 +1325,7 @@ def test_install_no_binary_disables_building_wheels(script, data, with_wheel):
|
||||
assert "Running setup.py install for upper" in str(res), str(res)
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel):
|
||||
to_install = data.packages.joinpath('pep517_setup_and_pyproject')
|
||||
res = script.pip(
|
||||
diff --git a/tests/functional/test_install_config.py b/tests/functional/test_install_config.py
|
||||
index 176976c4e..308263928 100644
|
||||
--- a/tests/functional/test_install_config.py
|
||||
+++ b/tests/functional/test_install_config.py
|
||||
@@ -133,6 +133,7 @@ def test_command_line_appends_correctly(script, data):
|
||||
), 'stdout: {}'.format(result.stdout)
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_config_file_override_stack(script, virtualenv):
|
||||
"""
|
||||
Test config files (global, overriding a global config with a
|
||||
diff --git a/tests/functional/test_install_upgrade.py b/tests/functional/test_install_upgrade.py
|
||||
index 6d2eeb5dc..0024de4d4 100644
|
||||
--- a/tests/functional/test_install_upgrade.py
|
||||
+++ b/tests/functional/test_install_upgrade.py
|
||||
@@ -8,6 +8,7 @@
|
||||
from tests.lib.local_repos import local_checkout
|
||||
|
||||
|
||||
+@pytest.mark.network
|
||||
def test_no_upgrade_unless_requested(script):
|
||||
"""
|
||||
No upgrade if not specifically requested.
|
||||
@@ -0,0 +1,17 @@
|
||||
install: Raise an error to avoid breaking python-exec
|
||||
|
||||
Running pip without --target, --root, or --user will result in packages
|
||||
being installed systemwide. This has a tendency to break python-exec if
|
||||
setuptools gets installed or upgraded.
|
||||
|
||||
--- pip-19.1/src/pip/_internal/commands/install.py
|
||||
+++ pip-19.1/src/pip/_internal/commands/install.py
|
||||
@@ -246,6 +246,9 @@ class InstallCommand(RequirementCommand):
|
||||
if options.upgrade:
|
||||
upgrade_strategy = options.upgrade_strategy
|
||||
|
||||
+ if not options.use_user_site and not options.target_dir and not options.root_path and not os.getenv('GENTOO_PIP_TESTING'):
|
||||
+ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec")
|
||||
+
|
||||
if options.build_dir:
|
||||
options.build_dir = os.path.abspath(options.build_dir)
|
||||
133
dev-python/pip/pip-19.3.1-r2.ebuild
Normal file
133
dev-python/pip/pip-19.3.1-r2.ebuild
Normal file
@@ -0,0 +1,133 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
|
||||
PYTHON_REQ_USE="ssl(+),threads(+)"
|
||||
|
||||
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||
|
||||
SETUPTOOLS_PV="41.4.0"
|
||||
WHEEL_PV="0.33.6"
|
||||
|
||||
DESCRIPTION="Installs python packages -- replacement for easy_install"
|
||||
HOMEPAGE="https://pip.pypa.io/ 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="~amd64 ~arm64 ~sparc ~x86"
|
||||
SLOT="0"
|
||||
IUSE="test -vanilla"
|
||||
|
||||
# disable-system-install patch breaks tests
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
test? (
|
||||
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[${PYTHON_USEDEP}]
|
||||
dev-python/wheel[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
python_prepare_all() {
|
||||
local PATCHES=(
|
||||
"${FILESDIR}/${PN}-19.3-disable-version-check.patch"
|
||||
|
||||
# these are from upstream git
|
||||
"${FILESDIR}/pip-19.3.1-network-tests.patch"
|
||||
)
|
||||
if ! use vanilla; then
|
||||
PATCHES+=( "${FILESDIR}/pip-19.3.1-r2-disable-system-install.patch" )
|
||||
fi
|
||||
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
|
||||
|
||||
local -a exclude_tests
|
||||
|
||||
# these will be built in to an expression passed to pytest to exclude
|
||||
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
|
||||
)
|
||||
|
||||
distutils_install_for_testing
|
||||
|
||||
# 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() {
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user