summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/pip/files/pip-21.3.1-cryptography-tests.patch39
-rw-r--r--dev-python/pip/pip-21.3.1-r1.ebuild10
2 files changed, 49 insertions, 0 deletions
diff --git a/dev-python/pip/files/pip-21.3.1-cryptography-tests.patch b/dev-python/pip/files/pip-21.3.1-cryptography-tests.patch
new file mode 100644
index 000000000000..1505d487ad40
--- /dev/null
+++ b/dev-python/pip/files/pip-21.3.1-cryptography-tests.patch
@@ -0,0 +1,39 @@
+From 8fa5d719a3c902ca9b6c9198229b7a67fecf8b8e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 26 Nov 2021 16:12:16 +0100
+Subject: [PATCH] Move cryptography-based imports into the fixture
+
+Move the imports that require cryptography into the cert_factory
+fixture. This makes it possible to deselect these tests on systems
+where cryptography cannot be installed.
+---
+ tests/conftest.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 076aeaf19..bab6ab3f5 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -27,7 +27,6 @@ from pip._internal.cli.main import main as pip_entry_point
+ from pip._internal.locations import _USE_SYSCONFIG
+ from pip._internal.utils.temp_dir import global_tempdir_manager
+ from tests.lib import DATA_DIR, SRC_DIR, PipTestEnvironment, TestData
+-from tests.lib.certs import make_tls_cert, serialize_cert, serialize_key
+ from tests.lib.path import Path
+ from tests.lib.server import MockServer as _MockServer
+ from tests.lib.server import make_mock_server, server_running
+@@ -535,6 +534,11 @@ def deprecated_python() -> bool:
+
+ @pytest.fixture(scope="session")
+ def cert_factory(tmpdir_factory: pytest.TempdirFactory) -> Callable[[], str]:
++ # Delay the import requiring cryptography in order to make it possible
++ # to deselect relevant tests on systems where cryptography cannot
++ # be installed.
++ from tests.lib.certs import make_tls_cert, serialize_cert, serialize_key
++
+ def factory() -> str:
+ """Returns path to cert/key file."""
+ output_path = Path(str(tmpdir_factory.mktemp("certs"))) / "cert.pem"
+--
+2.34.1
+
diff --git a/dev-python/pip/pip-21.3.1-r1.ebuild b/dev-python/pip/pip-21.3.1-r1.ebuild
index 2b3d17d2f6de..37cf7af8a3d9 100644
--- a/dev-python/pip/pip-21.3.1-r1.ebuild
+++ b/dev-python/pip/pip-21.3.1-r1.ebuild
@@ -57,6 +57,7 @@ BDEPEND="
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/${PN}-21.3-no-coverage.patch"
+ "${FILESDIR}/${P}-cryptography-tests.patch"
)
if ! use vanilla; then
PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )
@@ -97,6 +98,15 @@ python_test() {
tests/functional/test_warning.py::test_pip_works_with_warnings_as_errors
)
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/functional/test_install.py::test_install_sends_client_cert
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+ fi
+
distutils_install_for_testing
pushd "${WORKDIR}/virtualenv-${VENV_PV}" >/dev/null || die
distutils_install_for_testing