dev-python/pipdeptree: Bump to 2.21.0

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2024-05-28 06:36:44 +02:00
parent b7e21dc161
commit 165b74a6a1
3 changed files with 186 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST pipdeptree-2.16.2.tar.gz 32151 BLAKE2B 18715b0c7835e19bd5b6846922990e321a7e06315642204e7d79375a50b692f87e2ba1ec5884c4f69ff6e8d75e863c8cf372152aca7561ab94ef265d3c1df9fb SHA512 06d72f94a9165fe52cc15b9f539e3adb6da99e4a63cae78928bf68be3499b2828a5d471f270455b94a960ba2fe2f6319f5319c20ed270029a38a81173a7cd403
DIST pipdeptree-2.17.0.tar.gz 34677 BLAKE2B 3f92c4361978d2a6b1ae46d3a7e21aca231d504abf3a3cc8388d64a70fc3853a33edeac091a0b60cd3043d86162f6816292f973e9c8691420f906e946a5c9dac SHA512 1e7a4bc7f2f872e9d3115b413acc791eeb912a6f428fca772e30a3c8164ecfa44bba7e5246f9b65cbc4d34ffcd8050ff795ced3e3f9ad918f134ce052a8e8992
DIST pipdeptree-2.21.0.tar.gz 39119 BLAKE2B 15f37f997b89477a9e1815a2bf120ce5251e9cf2e4df9195dc76bd7414c0cf7f58c4b8e787649492c9826bda5d3f8df60577b5242af7354ad0e1583eabbf0589 SHA512 3d416683c70861de7b768a69fe59a31173e712ecb752c7948329f787c8e13bc54be544fa4a7d3bfdbf6b164202fa8b07898c6e993a53fe244a5f3d9fa9a00573

View File

@@ -0,0 +1,134 @@
diff --git a/tests/test_non_host.py b/tests/test_non_host.py
index 7049b0c..54ba7fb 100644
--- a/tests/test_non_host.py
+++ b/tests/test_non_host.py
@@ -16,6 +16,21 @@
from pytest_mock import MockerFixture
+@pytest.fixture(scope="session")
+def expected_venv_pkgs() -> frozenset[str]:
+ implementation = python_implementation()
+ if implementation == "CPython": # pragma: cpython cover
+ expected = {"pip", "setuptools", "wheel"}
+ elif implementation == "PyPy": # pragma: pypy cover
+ expected = {"cffi", "greenlet", "pip", "readline", "hpy", "setuptools", "wheel"}
+ else: # pragma: no cover
+ raise ValueError(implementation)
+ if sys.version_info >= (3, 12): # pragma: >=3.12 cover
+ expected -= {"setuptools", "wheel"}
+
+ return frozenset(expected)
+
+
@pytest.mark.parametrize("args_joined", [True, False])
def test_custom_interpreter(
tmp_path: Path,
@@ -23,6 +38,7 @@ def test_custom_interpreter(
monkeypatch: pytest.MonkeyPatch,
capfd: pytest.CaptureFixture[str],
args_joined: bool,
+ expected_venv_pkgs: frozenset[str],
) -> None:
# Delete $PYTHONPATH so that it cannot be passed to the custom interpreter process (since we don't know what
# distribution metadata to expect when it's used).
@@ -32,20 +48,13 @@ def test_custom_interpreter(
result = virtualenv.cli_run([str(tmp_path / "venv"), "--activators", ""])
py = str(result.creator.exe.relative_to(tmp_path))
cmd = ["", f"--python={result.creator.exe}"] if args_joined else ["", "--python", py]
+ cmd += ["--all", "--depth", "0"]
mocker.patch("pipdeptree._discovery.sys.argv", cmd)
main()
out, _ = capfd.readouterr()
found = {i.split("==")[0] for i in out.splitlines()}
- implementation = python_implementation()
- if implementation == "CPython":
- expected = {"pip", "setuptools", "wheel"}
- elif implementation == "PyPy":
- expected = {"cffi", "greenlet", "pip", "readline", "setuptools", "wheel"} # pragma: no cover
- else:
- raise ValueError(implementation)
- if sys.version_info >= (3, 12):
- expected -= {"setuptools", "wheel"}
- assert found == expected, out
+
+ assert expected_venv_pkgs == found, out
def test_custom_interpreter_with_local_only(
@@ -54,7 +63,6 @@ def test_custom_interpreter_with_local_only(
capfd: pytest.CaptureFixture[str],
) -> None:
venv_path = str(tmp_path / "venv")
-
result = virtualenv.cli_run([venv_path, "--system-site-packages", "--activators", ""])
cmd = ["", f"--python={result.creator.exe}", "--local-only"]
@@ -63,16 +71,10 @@ def test_custom_interpreter_with_local_only(
main()
out, _ = capfd.readouterr()
found = {i.split("==")[0] for i in out.splitlines()}
- implementation = python_implementation()
- if implementation == "CPython":
- expected = {"pip", "setuptools", "wheel"}
- elif implementation == "PyPy": # pragma: no cover
- expected = {"cffi", "greenlet", "pip", "readline", "setuptools", "wheel"} # pragma: no cover
- else:
- raise ValueError(implementation) # pragma: no cover
- if sys.version_info >= (3, 12):
- expected -= {"setuptools", "wheel"} # pragma: no cover
- assert found == expected, out
+ expected = {"pip", "setuptools", "wheel"}
+ if sys.version_info >= (3, 12): # pragma: >=3.12 cover
+ expected -= {"setuptools", "wheel"}
+ assert expected == found, out
def test_custom_interpreter_with_user_only(
@@ -81,7 +83,6 @@ def test_custom_interpreter_with_user_only(
# ensures there is no output when --user-only and --python are passed
venv_path = str(tmp_path / "venv")
-
result = virtualenv.cli_run([venv_path, "--activators", ""])
cmd = ["", f"--python={result.creator.exe}", "--user-only"]
@@ -127,7 +128,7 @@ def test_custom_interpreter_with_user_only_and_system_site_pkgs_enabled(
found = {i.split("==")[0] for i in out.splitlines()}
expected = {"bar"}
- assert found == expected
+ assert expected == found
def test_custom_interpreter_ensure_pythonpath_envar_is_honored(
@@ -135,6 +136,7 @@ def test_custom_interpreter_ensure_pythonpath_envar_is_honored(
mocker: MockerFixture,
monkeypatch: pytest.MonkeyPatch,
capfd: pytest.CaptureFixture[str],
+ expected_venv_pkgs: frozenset[str],
) -> None:
# ensures that we honor $PYTHONPATH when passing it to the custom interpreter process
venv_path = str(tmp_path / "venv")
@@ -146,19 +148,10 @@ def test_custom_interpreter_ensure_pythonpath_envar_is_honored(
fake_metadata = fake_dist / "METADATA"
with fake_metadata.open("w") as f:
f.write("Metadata-Version: 2.3\n" "Name: foo\n" "Version: 1.2.3\n")
- cmd = ["", f"--python={result.creator.exe}"]
+ cmd = ["", f"--python={result.creator.exe}", "--all", "--depth", "0"]
mocker.patch("pipdeptree._discovery.sys.argv", cmd)
monkeypatch.setenv("PYTHONPATH", str(another_path))
main()
out, _ = capfd.readouterr()
found = {i.split("==")[0] for i in out.splitlines()}
- implementation = python_implementation()
- if implementation == "CPython":
- expected = {"foo", "pip", "setuptools", "wheel"}
- elif implementation == "PyPy": # pragma: cpython no cover
- expected = {"foo", "cffi", "greenlet", "pip", "readline", "setuptools", "wheel"}
- else: # pragma: no cover
- raise ValueError(implementation)
- if sys.version_info >= (3, 12): # pragma: >=3.12 cover
- expected -= {"setuptools", "wheel"}
- assert found == expected, out
+ assert {*expected_venv_pkgs, "foo"} == found, out

View File

@@ -0,0 +1,51 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( pypy3 python3_{10..12} )
inherit distutils-r1 pypi optfeature
DESCRIPTION="Utility for displaying installed packages in a dependency tree"
HOMEPAGE="
https://github.com/tox-dev/pipdeptree/
https://pypi.org/project/pipdeptree/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/packaging-23.1[${PYTHON_USEDEP}]
>=dev-python/pip-23.1.2[${PYTHON_USEDEP}]
"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
dev-python/graphviz[${PYTHON_USEDEP}]
>=dev-python/pytest-console-scripts-1.4.1[${PYTHON_USEDEP}]
dev-python/pytest-mock[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
)
"
PATCHES=(
# https://github.com/tox-dev/pipdeptree/pull/369
"${FILESDIR}/${P}-pypy.patch"
)
distutils_enable_tests pytest
python_test() {
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -p pytest_mock -p console-scripts
}
pkg_postinst() {
optfeature \
"visualising the dependency graph with --graph-output" \
dev-python/graphviz
}