Initial release (RHBZ#2217257)
This commit is contained in:
parent
b668dc8e45
commit
256fe605b3
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/nihtest-1.1.1.tar.gz
|
106
python-nihtest.spec
Normal file
106
python-nihtest.spec
Normal 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
|
55
run_tests_using_cmake_and_ctest.patch
Normal file
55
run_tests_using_cmake_and_ctest.patch
Normal 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]
|
Loading…
Reference in New Issue
Block a user