commit:     0f9dc502a7920152f07009d8926a170625be862b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  3 20:03:46 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan  3 20:30:23 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f9dc502

dev-python/pipx: Run tests offline

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/pipx/Manifest          |  1 +
 dev-python/pipx/pipx-1.4.1.ebuild | 45 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/dev-python/pipx/Manifest b/dev-python/pipx/Manifest
index 14fcdd855dad..ad9bd8ae8cee 100644
--- a/dev-python/pipx/Manifest
+++ b/dev-python/pipx/Manifest
@@ -1,2 +1,3 @@
 DIST pipx-1.4.0.gh.tar.gz 357942 BLAKE2B 
34b0ede5a5160c8a5fcdff81c4902e0119041e7740b165c3a384234ba8362fa95db8002778a8987b4f93d9bd132152868171bb1627987c4cb7f4eb1cf2e4cc84
 SHA512 
5a0cd494ed6a4faa3f9f5cc5c56ee8ce9f27b3a456ad2eed2eaf5a9d175ea97209b2ec7b95e1500e1126ec066660f344f942692916cef552c39f49b2669160c9
+DIST pipx-1.4.1-test-shim.tar.xz 76316 BLAKE2B 
25200c9519f8e916cba3933b4df3cc808d5575ac055c4465dbd4cf0ced92bc7f0bca5c448e324b9d61a0cf70710f584cfba6106859ffcccf42e0f59910b81cd0
 SHA512 
760ad73c67588747bed91b7172821a8e899e52fff8966836d7a2b3dc8cd3946006c76fdcae0320364fe0cb5afc8b51dd583c0a3720099812702fb585b98b9fef
 DIST pipx-1.4.1.gh.tar.gz 357978 BLAKE2B 
2ef4f303eafacd84d4b157043a03dc9365708882080bddb1cbcbf16910686ad65938314953a1d1b5be86243fb614f7b705dd91362cd3d7199434147004d529e7
 SHA512 
04fa29b02a25f21544ae2bbc86fa927fd3c03f98b3f1bd6beee318cbb34849edfbd553fb3b9f94015aab16039aa49f706092a75bd2f865f04dec56a34da43f1f

diff --git a/dev-python/pipx/pipx-1.4.1.ebuild 
b/dev-python/pipx/pipx-1.4.1.ebuild
index 1b7ee2c493b3..388b94a953f1 100644
--- a/dev-python/pipx/pipx-1.4.1.ebuild
+++ b/dev-python/pipx/pipx-1.4.1.ebuild
@@ -8,6 +8,7 @@ PYTHON_COMPAT=( python3_{10..12} )
 
 inherit distutils-r1
 
+TEST_SHIM=pipx-1.4.1-test-shim
 DESCRIPTION="Install and Run Python Applications in Isolated Environments"
 HOMEPAGE="
        https://pipx.pypa.io/stable/
@@ -18,6 +19,9 @@ HOMEPAGE="
 SRC_URI="
        https://github.com/pypa/pipx/archive/${PV}.tar.gz
                -> ${P}.gh.tar.gz
+       test? (
+               https://dev.gentoo.org/~mgorny/dist/${TEST_SHIM}.tar.xz
+       )
 "
 
 LICENSE="MIT"
@@ -35,14 +39,49 @@ RDEPEND="
 "
 BDEPEND="
        dev-python/hatch-vcs[${PYTHON_USEDEP}]
+       test? (
+               dev-python/ensurepip-pip
+               dev-python/ensurepip-setuptools
+               dev-python/ensurepip-wheel
+               dev-python/pypiserver[${PYTHON_USEDEP}]
+       )
 "
 
-PROPERTIES="test_network"
-RESTRICT="test"
+EPYTEST_XDIST=1
 distutils_enable_tests pytest
 
 export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
 
+src_prepare() {
+       if use test; then
+               cp -vs 
"${BROOT}"/usr/lib/python/ensurepip/{pip,setuptools,wheel}-*.whl \
+                       "${WORKDIR}/${TEST_SHIM}/" || die
+               mkdir -p .pipx_tests/package_cache || die
+               local v
+               for v in 3.{10..12}; do
+                       ln -s "${WORKDIR}/${TEST_SHIM}" \
+                               ".pipx_tests/package_cache/${v}" || die
+               done
+
+               : > scripts/update_package_cache.py || die
+               # sigh
+               sed -e 's:server = str.*:server = "pypi-server":' \
+                       -i tests/conftest.py || die
+       fi
+
+       distutils-r1_src_prepare
+}
+
 python_test() {
-       epytest --net-pypiserver
+       local EPYTEST_DESELECT=(
+               # Internet
+               tests/test_run.py::test_run_ensure_null_pythonpath
+               tests/test_run.py::test_run_script_from_internet
+               
'tests/test_install.py::test_install_package_specs[pycowsay-git+https://github.com/cs01/pycowsay.git@master]'
+               tests/test_install.py::test_force_install_changes
+               
'tests/test_install.py::test_install_package_specs[nox-https://github.com/wntrblm/nox/archive/2022.1.7.zip]'
+       )
+
+       local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+       epytest -x
 }

Reply via email to