diff --git a/macros.python-srpm b/macros.python-srpm index ff1c372..c0d31b0 100644 --- a/macros.python-srpm +++ b/macros.python-srpm @@ -70,7 +70,7 @@ # Converts Python dist name to a canonical format %py_dist_name() %{lua:\ name = rpm.expand("%{?1:%{1}}");\ - canonical = string.gsub(string.lower(name), "%W+", "-");\ + canonical = string.gsub(string.lower(name), "[^%w%[%]]+", "-");\ print(canonical);\ } diff --git a/python-rpm-macros.spec b/python-rpm-macros.spec index 5b6a64c..eb381a8 100644 --- a/python-rpm-macros.spec +++ b/python-rpm-macros.spec @@ -109,6 +109,7 @@ install -m 644 compileall2.py %{buildroot}%{_rpmconfigdir}/redhat/ %changelog * Wed Jul 08 2020 Miro Hrončok - 3.9-5 - Introduce %%python_extras_subpkg +- Adapt %%py_dist_name to keep square brackets - https://fedoraproject.org/wiki/Changes/PythonExtras * Tue Jun 16 2020 Lumír Balhar - 3.9-4 diff --git a/tests/test_evals.py b/tests/test_evals.py index 70c7f9f..ce38793 100644 --- a/tests/test_evals.py +++ b/tests/test_evals.py @@ -3,6 +3,8 @@ import subprocess import sys import textwrap +import pytest + X_Y = f'{sys.version_info[0]}.{sys.version_info[1]}' XY = f'{sys.version_info[0]}{sys.version_info[1]}' @@ -24,6 +26,30 @@ def rpm_eval(expression, fails=False, **kwargs): return cp.stdout.strip().splitlines() +@pytest.mark.parametrize('argument, result', [ + ('a', 'a'), + ('a-a', 'a-a'), + ('a_a', 'a-a'), + ('a.a', 'a-a'), + ('a---a', 'a-a'), + ('a-_-a', 'a-a'), + ('a-_-a', 'a-a'), + ('a[b]', 'a[b]'), + ('Aha[Boom]', 'aha[boom]'), + ('a.a[b.b]', 'a-a[b-b]'), +]) +def test_pydist_name(argument, result): + assert rpm_eval(f'%py_dist_name {argument}') == [result] + + +def test_py2_dist(): + assert rpm_eval(f'%py2_dist Aha[Boom] a') == ['python2dist(aha[boom]) python2dist(a)'] + + +def test_py3_dist(): + assert rpm_eval(f'%py3_dist Aha[Boom] a') == ['python3dist(aha[boom]) python3dist(a)'] + + def test_python_provide_python(): assert rpm_eval('%python_provide python-foo') == []