From 06b4018be57f997b818bf3c3ba2010fc468964e6bf42368ad2c9d312d3a84236 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Wed, 6 May 2020 00:29:34 +0000 Subject: [PATCH] - Don't use %python3_only command, but properly use alternatives. - Add test_alternative_names.patch to make tests pass even with alternated name of the binary. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pipx?expand=0&rev=3 --- python-pipx.changes | 7 +++++++ python-pipx.spec | 27 +++++++++++++++++++++------ test_alternative_names.patch | 19 +++++++++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 test_alternative_names.patch diff --git a/python-pipx.changes b/python-pipx.changes index d8f2b76..dc6ba02 100644 --- a/python-pipx.changes +++ b/python-pipx.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed May 6 00:20:19 UTC 2020 - Matej Cepl + +- Don't use %python3_only command, but properly use alternatives. +- Add test_alternative_names.patch to make tests pass even + with alternated name of the binary. + ------------------------------------------------------------------- Mon Oct 21 14:08:11 UTC 2019 - John Vandenberg diff --git a/python-pipx.spec b/python-pipx.spec index 564c37b..0e9def8 100644 --- a/python-pipx.spec +++ b/python-pipx.spec @@ -1,7 +1,7 @@ # # spec file for package python-pipx # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,8 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# %{?!python_module:%define python_module() python-%{**} python3-%{**}} @@ -20,14 +21,17 @@ Name: python-pipx Version: 0.14.0.0 Release: 0 -License: MIT Summary: Install and run Python applications in isolated environments -Url: https://github.com/pipxproject/pipx +License: MIT Group: Development/Languages/Python +URL: https://github.com/pipxproject/pipx Source: https://github.com/pipxproject/pipx/archive/%{version}.tar.gz#/pipx-%{version}.tar.gz -BuildRequires: python-rpm-macros +# PATCH-FIX-OPENSUSE test_alternative_names.patch mcepl@suse.com +# Make tests pass even with using alternatives +Patch0: test_alternative_names.patch BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} +BuildRequires: python-rpm-macros # SECTION test requirements BuildRequires: %{python_module argcomplete >= 1.9.4} BuildRequires: %{python_module userpath} @@ -36,6 +40,8 @@ BuildRequires: fdupes Requires: python-argcomplete >= 1.9.4 Requires: python-setuptools Requires: python-userpath +Requires(post): update-alternatives +Requires(postun): update-alternatives BuildArch: noarch %python_subpackages @@ -45,6 +51,8 @@ Install and run Python applications in isolated environments. %prep %setup -q -n pipx-%{version} +%autopatch -p1 + sed -i '1{/^#!/d}' pipx/main.py pipx/venv_metadata_inspector.py %build @@ -52,6 +60,7 @@ sed -i '1{/^#!/d}' pipx/main.py pipx/venv_metadata_inspector.py %install %python_install +%python_clone -a %{buildroot}%{_bindir}/pipx %python_expand %fdupes %{buildroot}%{$python_sitelib} %check @@ -65,10 +74,16 @@ source testenv/bin/activate $python -m pytest -vv -k 'test_basic_commands or test_pipx_help_contains_text' } +%post +%python_install_alternative pipx + +%postun +%python_uninstall_alternative pipx + %files %{python_files} %doc README.md %license LICENSE -%python3_only %{_bindir}/pipx +%python_alternative %{_bindir}/pipx %{python_sitelib}/* %changelog diff --git a/test_alternative_names.patch b/test_alternative_names.patch new file mode 100644 index 0000000..7affd67 --- /dev/null +++ b/test_alternative_names.patch @@ -0,0 +1,19 @@ +--- a/tests/test_pipx.py ++++ b/tests/test_pipx.py +@@ -12,6 +12,7 @@ from pipx.util import WINDOWS + + + PIPX_PATH = CURDIR = Path(__file__).parent.parent ++PYVER_DOT = '.'.join([str(x) for x in sys.version_info[:2]]) + + assert not hasattr(sys, "real_prefix"), "Tests cannot run under virtualenv" + assert getattr(sys, "base_prefix", sys.prefix) != sys.prefix, "Tests require venv" +@@ -42,7 +43,7 @@ class TestPipxCommands(unittest.TestCase + if WINDOWS: + pipx_bin = "pipx.exe" + else: +- pipx_bin = "pipx" ++ pipx_bin = "pipx-{}".format(PYVER_DOT) + + self.assertTrue(which(pipx_bin)) + self.pipx_bin = pipx_bin