15
0

Accepting request 1277279 from devel:languages:python

- Add patch support-click-8.2.patch:
  * Support click 8.2+ changes.
- Switch to autosetup and pyproject macros.
- No more greedy globs in %files.

OBS-URL: https://build.opensuse.org/request/show/1277279
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-click-plugins?expand=0&rev=10
This commit is contained in:
2025-05-14 15:01:31 +00:00
committed by Git OBS Bridge
3 changed files with 96 additions and 7 deletions

View File

@@ -1,3 +1,11 @@
-------------------------------------------------------------------
Wed May 14 04:08:19 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-click-8.2.patch:
* Support click 8.2+ changes.
- Switch to autosetup and pyproject macros.
- No more greedy globs in %files.
-------------------------------------------------------------------
Sun Jun 11 13:45:26 UTC 2023 - ecsos <ecsos@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-click-plugins
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,6 @@
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%if 0%{?sle_version} == 150300
# tests fail on python2 on Leap 15.3 and SLE 15 SP3
%define skip_python2 1
@@ -27,12 +26,15 @@ Version: 1.1.1
Release: 0
Summary: Click extension to register CLI commands via setuptools entry-points
License: BSD-3-Clause
Group: Development/Languages/Python
URL: https://github.com/click-contrib/click-plugins
Source: https://files.pythonhosted.org/packages/source/c/click-plugins/click-plugins-%{version}.tar.gz
# PATCH-FIX-OPENSUSE https://github.com/click-contrib/click-plugins/issues/38
Patch0: support-click-8.2.patch
BuildRequires: %{python_module click >= 3.0}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-click >= 3.0
@@ -48,13 +50,13 @@ You could have all plugins register alongside the core commands,
in a special sub-group, across multiple sub-groups, or some combination.
%prep
%setup -q -n click-plugins-%{version}
%autosetup -p1 -n click-plugins-%{version}
%build
%python_build
%pyproject_wheel
%install
%python_install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
@@ -68,6 +70,7 @@ export LANG=en_US.UTF-8
%else
%license LICENSE.txt
%endif
%{python_sitelib}/*
%{python_sitelib}/click_plugins
%{python_sitelib}/click_plugins-%{version}.dist-info
%changelog

78
support-click-8.2.patch Normal file
View File

@@ -0,0 +1,78 @@
Index: click-plugins-1.1.1/tests/test_plugins.py
===================================================================
--- click-plugins-1.1.1.orig/tests/test_plugins.py
+++ click-plugins-1.1.1/tests/test_plugins.py
@@ -1,3 +1,6 @@
+import importlib.metadata
+
+from packaging.version import Version
from pkg_resources import EntryPoint
from pkg_resources import iter_entry_points
from pkg_resources import working_set
@@ -20,6 +23,12 @@ def cmd2(arg):
"""Test command 2"""
click.echo('passed')
+click_version = Version(importlib.metadata.version("click"))
+if click_version >= Version("8.2"):
+ expected_exit_code = 2
+else:
+ expected_exit_code = 0
+
# Manually register plugins in an entry point and put broken plugins in a
# different entry point.
@@ -78,7 +87,7 @@ def test_registered():
def test_register_and_run(runner):
result = runner.invoke(good_cli)
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
for ep in iter_entry_points('_test_click_plugins.test_plugins'):
cmd_result = runner.invoke(good_cli, [ep.name, 'something'])
@@ -89,7 +98,7 @@ def test_register_and_run(runner):
def test_broken_register_and_run(runner):
result = runner.invoke(broken_cli)
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output
for ep in iter_entry_points('_test_click_plugins.broken_plugins'):
@@ -108,7 +117,7 @@ def test_group_chain(runner):
pass
result = runner.invoke(good_cli)
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
assert sub_cli.name in result.output
for ep in iter_entry_points('_test_click_plugins.test_plugins'):
assert ep.name in result.output
@@ -121,7 +130,7 @@ def test_group_chain(runner):
pass
result = runner.invoke(good_cli, ['sub-cli-plugins'])
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
for ep in iter_entry_points('_test_click_plugins.test_plugins'):
assert ep.name in result.output
@@ -142,7 +151,7 @@ def test_exception():
def test_broken_register_and_run_with_help(runner):
result = runner.invoke(broken_cli)
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output
for ep in iter_entry_points('_test_click_plugins.broken_plugins'):
@@ -153,7 +162,7 @@ def test_broken_register_and_run_with_he
def test_broken_register_and_run_with_args(runner):
result = runner.invoke(broken_cli)
- assert result.exit_code == 0
+ assert result.exit_code == expected_exit_code
assert u'\U0001F4A9' in result.output or u'\u2020' in result.output
for ep in iter_entry_points('_test_click_plugins.broken_plugins'):