Initial release (RHBZ#2217257)

This commit is contained in:
Sandro 2023-07-10 11:34:37 +02:00
parent b668dc8e45
commit 256fe605b3
No known key found for this signature in database
GPG Key ID: 68D0FF74FE9F382A
4 changed files with 163 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/nihtest-1.1.1.tar.gz

106
python-nihtest.spec Normal file
View File

@ -0,0 +1,106 @@
%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
%autochangelog

View File

@ -0,0 +1,55 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9451fb4..0c6996c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,27 +11,27 @@ enable_testing()
find_package(Python3 REQUIRED COMPONENTS Interpreter)
-set(VENV ${CMAKE_BINARY_DIR}/venv)
+#set(VENV ${CMAKE_BINARY_DIR}/venv)
if (WIN32)
- set(VENV_BIN_DIR ${VENV}/Scripts)
- set(VENV_PYTHON ${VENV_BIN_DIR}/python.exe)
+ #set(VENV_BIN_DIR ${VENV}/Scripts)
+ #set(VENV_PYTHON ${VENV_BIN_DIR}/python.exe)
else () # assume Linux
- set(VENV_BIN_DIR ${VENV}/bin)
- set(VENV_PYTHON ${VENV_BIN_DIR}/python)
+ #set(VENV_BIN_DIR ${VENV}/bin)
+ #set(VENV_PYTHON ${VENV_BIN_DIR}/python)
endif ()
-set(NIHTEST ${VENV_BIN_DIR}/nihtest)
+#set(NIHTEST ${VENV_BIN_DIR}/nihtest)
file(GLOB SOURCES ${CMAKE_SOURCE_DIR}/nihtest/*.py)
-add_custom_command(
- OUTPUT ${NIHTEST}
- COMMAND ${Python3_EXECUTABLE} -m venv ${VENV}
- COMMAND ${VENV_BIN_DIR}/pip install -q --disable-pip-version-check ${CMAKE_SOURCE_DIR}
- DEPENDS ${SOURCES}
-)
+#add_custom_command(
+ #OUTPUT ${NIHTEST}
+ #COMMAND ${Python3_EXECUTABLE} -m venv ${VENV}
+ #COMMAND ${VENV_BIN_DIR}/pip install -q --disable-pip-version-check ${CMAKE_SOURCE_DIR}
+ #DEPENDS ${SOURCES}
+#)
-add_custom_target(venv ALL DEPENDS ${NIHTEST})
+#add_custom_target(venv ALL #DEPENDS ${NIHTEST})
# TODO: target for wheel
diff --git a/tests/nihtest.conf.in b/tests/nihtest.conf.in
index 4204af3..dd3677e 100644
--- a/tests/nihtest.conf.in
+++ b/tests/nihtest.conf.in
@@ -5,3 +5,5 @@ program-directories = @PROJECT_BINARY_DIR@
@PROJECT_BINARY_DIR@/Release
@PROJECT_BINARY_DIR@/Debug
@VENV_BIN_DIR@
+
+[environment]

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (nihtest-1.1.1.tar.gz) = 56b134fe17506db1f2e974cc1c90993841243b196fad01f840b1e89d888cc9d1819531ef13c91ca6d7b1d8ed9d490e04777c57f9b864fc022ad7b3bd0a5a66b4