## START: Set by rpmautospec ## (rpmautospec version 0.3.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 2; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global pypi_name nihtest %global forgeurl https://github.com/nih-at/nihtest %bcond_without tests Name: python-%{pypi_name} Version: 1.1.1 Release: %{autorelease} Summary: A testing tool for command line utilities %forgemeta License: BSD-3-Clause URL: %forgeurl Source: %forgesource Patch: run_tests_using_cmake_and_ctest.patch BuildArch: noarch BuildRequires: python3-devel BuildRequires: git-core # For generating manpages BuildRequires: make, mandoc # For running tests using CMake %if %{with tests} BuildRequires: cmake, gcc %endif %global _description %{expand: This is nihtest, a testing tool for command line utilities. Tests are run in a sandbox directory to guarantee a clean separation of the test. It checks that exit code, standard and error outputs are as expected and compares the files in the sandbox after the run with the expected results.} %description %_description %package -n python3-%{pypi_name} Summary: %{summary} Provides: nihtest = %{?epoch:%{epoch}:}%{version}-%{release} %description -n python3-%{pypi_name} %_description %prep %autosetup -p1 -n %{pypi_name}-%{version} -S git # Work around issue with package discovery due to SPECPARTS dir # https://github.com/rpm-software-management/rpm/issues/2532 # Another option seems to be to remove that dir echo -e '\n[tool.setuptools]\npackages = ["nihtest"]\n' >> pyproject.toml %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel # Generate man pages and docs pushd manpages make %{?_smp_mflags} popd %install %pyproject_install %pyproject_save_files %{pypi_name} mkdir -p %{buildroot}/%{_mandir}/man{1,5} mv manpages/nihtest.man manpages/nihtest.1 mv manpages/nihtest-case.man manpages/nihtest-case.5 mv manpages/nihtest.conf.man manpages/nihtest.conf.5 cp -a manpages/*.1 %{buildroot}/%{_mandir}/man1 cp -a manpages/*.5 %{buildroot}/%{_mandir}/man5 %check %pyproject_check_import # Run tests using CMake %if %{with tests} # Solution for running tests provided by Benson Muite touch check.sh echo "PATH=%{buildroot}%{_bindir}:${PATH} PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:${PYTHONPATH} %{python3} %{buildroot}%{_bindir}/nihtest -v \$1 " >> check.sh sed -i 's|${NIHTEST}|bash %{_builddir}/%{pypi_name}-%{version}/check.sh|g' tests/CMakeLists.txt sed -i 's|ENVIRONMENT "PATH=${path}"|ENVIRONMENT "PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$ENV{PYTHONPATH}"|g' tests/CMakeLists.txt echo "PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" >> tests/nihtest.conf.in %cmake %cmake_build %ctest %endif %files -n python3-%{pypi_name} -f %{pyproject_files} %doc README.* %doc manpages/*.html %{_bindir}/%{pypi_name} %{_mandir}/man1/%{pypi_name}.1* %{_mandir}/man5/%{pypi_name}*.5* %changelog * Sun Jul 09 2023 Sandro - 1.1.1-2 - Use parallel make when building docs * Sun Jul 09 2023 Sandro - 1.1.1-1 - Enable tests and run them using patched CMake config - Update to 1.1.1 * Wed Jun 28 2023 Sandro - 1.1.0-8 - Disable running tests for now * Sun Jun 25 2023 Sandro - 1.1.0-7 - Fix packaging issues with man pages * Sun Jun 25 2023 Sandro - 1.1.0-6 - Add comment to SPECPARTS quirk * Sun Jun 25 2023 Sandro - 1.1.0-5 - Run tests * Sun Jun 25 2023 Sandro - 1.1.0-4 - Install doc files and manpages * Sun Jun 25 2023 Sandro - 1.1.0-3 - Switch to GitHub sources * Sun Jun 25 2023 Sandro - 1.1.0-2 - Generate manpages * Sun Jun 25 2023 Sandro - 1.1.0-1 - Initial release