diff --git a/opensuse-test.patch b/opensuse-test.patch new file mode 100644 index 0000000..429fd58 --- /dev/null +++ b/opensuse-test.patch @@ -0,0 +1,34 @@ +--- + tests/test_ansi2html.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +Index: ansi2html-1.9.2/tests/test_ansi2html.py +=================================================================== +--- ansi2html-1.9.2.orig/tests/test_ansi2html.py 2024-06-22 19:22:24.000000000 +0200 ++++ ansi2html-1.9.2/tests/test_ansi2html.py 2025-06-17 22:27:11.354092953 +0200 +@@ -50,6 +50,7 @@ + + class TestAnsi2HTML: + maxDiff = None ++ cmd_exe = "ansi2html-" + '.'.join([str(x) for x in sys.version_info[:2]]) + + def test_linkify(self) -> None: + ansi = "http://threebean.org#foobar" +@@ -465,7 +466,7 @@ + assert target in html + + def test_command_script(self) -> None: +- result = run(["ansi2html", "--version"], check=True) ++ result = run([self.cmd_exe, "--version"], check=True) + assert result.returncode == 0 + + def test_command_input_output_encoding(self) -> None: +@@ -480,7 +481,7 @@ + + with Popen( + [ +- "ansi2html", ++ self.cmd_exe, + "--inline", + f"--input-encoding={input_encoding}", + f"--output-encoding={output_encoding}", diff --git a/python-ansi2html.changes b/python-ansi2html.changes index 5d5e6cd..e2176a8 100644 --- a/python-ansi2html.changes +++ b/python-ansi2html.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Jun 17 20:29:28 UTC 2025 - Matej Cepl + +- Add opensuse-test.patch making the tests work even with + versioned executables in the testing environment (i.e., before + the alts scriptlets kick in). + +------------------------------------------------------------------- +Mon Jun 16 12:20:51 UTC 2025 - Markéta Machová + +- Convert to libalternatives + ------------------------------------------------------------------- Sun Jun 23 07:43:43 UTC 2024 - Johannes Kastl diff --git a/python-ansi2html.spec b/python-ansi2html.spec index a69fb97..10a54ac 100644 --- a/python-ansi2html.spec +++ b/python-ansi2html.spec @@ -1,7 +1,7 @@ # # spec file for package python-ansi2html # -# Copyright (c) 2024 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,6 +16,7 @@ # +%bcond_without libalternatives %{?sle15_python_module_pythons} Name: python-ansi2html Version: 1.9.2 @@ -25,14 +26,19 @@ License: LGPL-3.0-or-later Group: Development/Languages/Python URL: https://github.com/pycontribs/ansi2html/ Source: https://github.com/pycontribs/ansi2html/archive/v%{version}.tar.gz +# PATCH-FIX-OPENSUSE opensuse-test.patch bsc#[0-9]+ mcepl@suse.com +# Make tests work with versioned executables before alts kick in +# If any other test fails, because the executable is not +# "ansi2html", replace it with self.cmd_exe +Patch0: opensuse-test.patch BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} +BuildRequires: alts BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires: alts BuildArch: noarch %python_subpackages @@ -44,7 +50,7 @@ Inspired by and developed off of the work of pixelbeat and blackjack. Read the [docs](https://ansi2html.readthedocs.io/) for more informations. %prep -%setup -q -n ansi2html-%{version} +%autosetup -p1 -n ansi2html-%{version} %build %pyproject_wheel @@ -57,15 +63,13 @@ Read the [docs](https://ansi2html.readthedocs.io/) for more informations. %check # https://github.com/pycontribs/ansi2html/issues/169 sed -i 's:from mock:from unittest.mock:' tests/test_ansi2html.py +export PATH=$PATH:%{buildroot}%{_bindir} # ansi2html not available (update alternatives); solvable # but it runs just ansi2html --version -%pytest -k 'not test_command_script' +%pytest -%post -%python_install_alternative ansi2html - -%postun -%python_uninstall_alternative ansi2html +%pre +%python_libalternatives_reset_alternative ansi2html %files %{python_files} %license LICENSE