mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 02:39:08 -07:00
259 lines
11 KiB
Diff
259 lines
11 KiB
Diff
diff --git a/src/pip/_internal/cli/main_parser.py b/src/pip/_internal/cli/main_parser.py
|
|
index 903c89112..558a0d5a0 100644
|
|
--- a/src/pip/_internal/cli/main_parser.py
|
|
+++ b/src/pip/_internal/cli/main_parser.py
|
|
@@ -81,6 +81,11 @@ def parse_command(args: list[str]) -> tuple[str, list[str]]:
|
|
|
|
# --python
|
|
if general_options.python and "_PIP_RUNNING_IN_SUBPROCESS" not in os.environ:
|
|
+ raise CommandError(
|
|
+ "--python option is not supported on Gentoo, as it requires bundled "
|
|
+ "dependencies that have been removed to improve security"
|
|
+ )
|
|
+
|
|
# Re-invoke pip using the specified Python interpreter
|
|
interpreter = identify_python_interpreter(general_options.python)
|
|
if interpreter is None:
|
|
diff --git a/src/pip/_internal/commands/debug.py b/src/pip/_internal/commands/debug.py
|
|
index 4e8178d0a..b42a12064 100644
|
|
--- a/src/pip/_internal/commands/debug.py
|
|
+++ b/src/pip/_internal/commands/debug.py
|
|
@@ -7,7 +7,6 @@ from optparse import Values
|
|
from types import ModuleType
|
|
from typing import Any
|
|
|
|
-import pip._vendor
|
|
from pip._vendor.certifi import where
|
|
from pip._vendor.packaging.version import parse as parse_version
|
|
|
|
@@ -186,9 +185,7 @@ class DebugCommand(Command):
|
|
show_value("REQUESTS_CA_BUNDLE", os.environ.get("REQUESTS_CA_BUNDLE"))
|
|
show_value("CURL_CA_BUNDLE", os.environ.get("CURL_CA_BUNDLE"))
|
|
show_value("pip._vendor.certifi.where()", where())
|
|
- show_value("pip._vendor.DEBUNDLED", pip._vendor.DEBUNDLED)
|
|
-
|
|
- show_vendor_versions()
|
|
+ show_value("pip._vendor.DEBUNDLED", True)
|
|
|
|
show_tags(options)
|
|
|
|
diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
|
|
index e1482b9cd..cc5758c1f 100644
|
|
--- a/src/pip/_internal/commands/install.py
|
|
+++ b/src/pip/_internal/commands/install.py
|
|
@@ -546,13 +546,6 @@ class InstallCommand(RequirementCommand):
|
|
if options.target_dir or options.prefix_path:
|
|
warn_script_location = False
|
|
|
|
- # Warn on late imports so we don't silently pick up a module
|
|
- # from a distribution pip is about to install.
|
|
- try:
|
|
- _eagerly_import_modules()
|
|
- finally:
|
|
- _prevent_further_imports()
|
|
-
|
|
installed = install_given_reqs(
|
|
to_install,
|
|
root=options.root_path,
|
|
diff --git a/tests/conftest.py b/tests/conftest.py
|
|
index c1a3d60ce..0b2b5fd98 100644
|
|
--- a/tests/conftest.py
|
|
+++ b/tests/conftest.py
|
|
@@ -532,9 +532,6 @@ def virtualenv_template(
|
|
tmpdir_factory: pytest.TempPathFactory,
|
|
pip_src: Path,
|
|
pip_editable_parts: tuple[Path, ...],
|
|
- setuptools_install: Path,
|
|
- coverage_install: Path,
|
|
- socket_install: Path,
|
|
) -> VirtualEnvironment:
|
|
venv_type: VirtualEnvironmentType
|
|
if request.config.getoption("--use-venv"):
|
|
@@ -546,13 +543,6 @@ def virtualenv_template(
|
|
tmpdir = tmpdir_factory.mktemp("virtualenv")
|
|
venv = VirtualEnvironment(tmpdir.joinpath("venv_orig"), venv_type=venv_type)
|
|
|
|
- # Install setuptools, pytest-subket, and pip.
|
|
- install_pth_link(venv, "setuptools", setuptools_install)
|
|
- install_pth_link(venv, "pytest_subket", socket_install)
|
|
- # Also copy pytest-subket's .pth file so it can intercept socket calls.
|
|
- with open(venv.site / "pytest_socket.pth", "w") as f:
|
|
- f.write(socket_install.joinpath("pytest_socket.pth").read_text())
|
|
-
|
|
pth, dist_info = pip_editable_parts
|
|
|
|
shutil.copy(pth, venv.site)
|
|
@@ -564,14 +554,6 @@ def virtualenv_template(
|
|
# detects changed files.
|
|
venv.site.joinpath("easy-install.pth").touch()
|
|
|
|
- if request.config.getoption("--cov"):
|
|
- # Install coverage and pth file for executing it in any spawned processes
|
|
- # in this virtual environment.
|
|
- install_pth_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 exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so...
|
|
diff --git a/tests/functional/test_check.py b/tests/functional/test_check.py
|
|
index acf99bc13..5425002e7 100644
|
|
--- a/tests/functional/test_check.py
|
|
+++ b/tests/functional/test_check.py
|
|
@@ -10,10 +10,8 @@ from tests.lib import (
|
|
def matches_expected_lines(string: str, expected_lines: Collection[str]) -> bool:
|
|
# Ignore empty lines
|
|
output_lines = list(filter(None, string.splitlines()))
|
|
- # We'll match the last n lines, given n lines to match.
|
|
- last_few_output_lines = output_lines[-len(expected_lines) :]
|
|
# And order does not matter
|
|
- return set(last_few_output_lines) == set(expected_lines)
|
|
+ return set(expected_lines).issubset(set(output_lines))
|
|
|
|
|
|
def test_basic_check_clean(script: PipTestEnvironment) -> None:
|
|
diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
|
|
index 92e55aca6..e6d5f6d51 100644
|
|
--- a/tests/functional/test_freeze.py
|
|
+++ b/tests/functional/test_freeze.py
|
|
@@ -75,8 +75,8 @@ def test_basic_freeze(script: PipTestEnvironment) -> None:
|
|
)
|
|
result = script.pip("freeze", expect_stderr=True)
|
|
expected = textwrap.dedent("""\
|
|
- ...simple==2.0
|
|
- simple2==3.0...
|
|
+ ...simple==2.0...
|
|
+ ...simple2==3.0...
|
|
<BLANKLINE>""")
|
|
_check_output(result.stdout, expected)
|
|
|
|
@@ -881,7 +881,7 @@ def test_freeze_skip_work_dir_pkg(script: PipTestEnvironment) -> None:
|
|
|
|
# Freeze should not include package simple when run from package directory
|
|
result = script.pip("freeze", cwd=pkg_path)
|
|
- assert "simple" not in result.stdout
|
|
+ assert "\nsimple==" not in result.stdout
|
|
|
|
|
|
def test_freeze_include_work_dir_pkg(script: PipTestEnvironment) -> None:
|
|
diff --git a/tests/functional/test_install_check.py b/tests/functional/test_install_check.py
|
|
index cb8312b53..174bb8f66 100644
|
|
--- a/tests/functional/test_install_check.py
|
|
+++ b/tests/functional/test_install_check.py
|
|
@@ -61,6 +61,7 @@ def test_check_install_canonicalization(script: PipTestEnvironment) -> None:
|
|
)
|
|
assert "requires" not in result.stderr
|
|
assert result.returncode == 0
|
|
+ return
|
|
|
|
# Double check that all errors are resolved in the end
|
|
result = script.pip("check")
|
|
diff --git a/tests/functional/test_list.py b/tests/functional/test_list.py
|
|
index 1acc28254..c10dd70ed 100644
|
|
--- a/tests/functional/test_list.py
|
|
+++ b/tests/functional/test_list.py
|
|
@@ -1,5 +1,6 @@
|
|
import json
|
|
import os
|
|
+import re
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
@@ -43,8 +44,8 @@ def test_basic_list(simple_script: PipTestEnvironment) -> None:
|
|
|
|
"""
|
|
result = simple_script.pip("list")
|
|
- assert "simple 1.0" in result.stdout, str(result)
|
|
- assert "simple2 3.0" in result.stdout, str(result)
|
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
|
|
|
|
|
def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
|
|
@@ -56,8 +57,8 @@ def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
|
|
assert "Version" in result.stdout, str(result)
|
|
assert "Location" in result.stdout, str(result)
|
|
assert "Installer" in result.stdout, str(result)
|
|
- assert "simple 1.0" in result.stdout, str(result)
|
|
- assert "simple2 3.0" in result.stdout, str(result)
|
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
|
|
|
|
|
def test_columns_flag(simple_script: PipTestEnvironment) -> None:
|
|
@@ -68,8 +69,8 @@ def test_columns_flag(simple_script: PipTestEnvironment) -> None:
|
|
assert "Package" in result.stdout, str(result)
|
|
assert "Version" in result.stdout, str(result)
|
|
assert "simple (1.0)" not in result.stdout, str(result)
|
|
- assert "simple 1.0" in result.stdout, str(result)
|
|
- assert "simple2 3.0" in result.stdout, str(result)
|
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
|
|
|
|
|
def test_format_priority(simple_script: PipTestEnvironment) -> None:
|
|
@@ -81,16 +82,16 @@ def test_format_priority(simple_script: PipTestEnvironment) -> None:
|
|
)
|
|
assert "simple==1.0" in result.stdout, str(result)
|
|
assert "simple2==3.0" in result.stdout, str(result)
|
|
- assert "simple 1.0" not in result.stdout, str(result)
|
|
- assert "simple2 3.0" not in result.stdout, str(result)
|
|
+ assert not re.search(r"simple\s+1\.0", result.stdout), str(result)
|
|
+ assert not re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
|
|
|
result = simple_script.pip("list", "--format=freeze", "--format=columns")
|
|
assert "Package" in result.stdout, str(result)
|
|
assert "Version" in result.stdout, str(result)
|
|
assert "simple==1.0" not in result.stdout, str(result)
|
|
assert "simple2==3.0" not in result.stdout, str(result)
|
|
- assert "simple 1.0" in result.stdout, str(result)
|
|
- assert "simple2 3.0" in result.stdout, str(result)
|
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
|
|
|
|
|
def test_local_flag(simple_script: PipTestEnvironment) -> None:
|
|
@@ -126,8 +127,8 @@ def test_multiple_exclude_and_normalization(
|
|
assert "Normalizable_Name" in result.stdout
|
|
assert "pip" in result.stdout
|
|
result = script.pip("list", "--exclude", "normalizablE-namE", "--exclude", "pIp")
|
|
- assert "Normalizable_Name" not in result.stdout
|
|
- assert "pip" not in result.stdout
|
|
+ assert "Normalizable_Name " not in result.stdout
|
|
+ assert "pip " not in result.stdout
|
|
|
|
|
|
@pytest.mark.usefixtures("enable_user_site")
|
|
diff --git a/tests/lib/venv.py b/tests/lib/venv.py
|
|
index a5d8704b2..81438f12e 100644
|
|
--- a/tests/lib/venv.py
|
|
+++ b/tests/lib/venv.py
|
|
@@ -9,6 +9,7 @@ import venv as _venv
|
|
from pathlib import Path
|
|
from typing import Literal
|
|
|
|
+import pytest
|
|
import virtualenv as _virtualenv
|
|
|
|
VirtualEnvironmentType = Literal["virtualenv", "venv"]
|
|
@@ -35,7 +36,7 @@ class VirtualEnvironment:
|
|
self._venv_type = venv_type
|
|
else:
|
|
self._venv_type = "virtualenv"
|
|
- self._user_site_packages = False
|
|
+ self._user_site_packages = True
|
|
self._template = template
|
|
self._sitecustomize: str | None = None
|
|
self._update_paths()
|
|
@@ -155,6 +156,8 @@ class VirtualEnvironment:
|
|
|
|
@user_site_packages.setter
|
|
def user_site_packages(self, value: bool) -> None:
|
|
+ if not value:
|
|
+ pytest.skip("Gentoo: skipping due to lack of system site-packages")
|
|
self._user_site_packages = value
|
|
self._rewrite_pyvenv_cfg(
|
|
{"include-system-site-packages": str(bool(value)).lower()}
|