%if 0%{?fedora}
%bcond_without python3
%else
%bcond_with python3
%endif
%global srcname zope.testrunner
%global pkgname zope-testrunner
Name: python-%{pkgname}
Version: 4.5.1
Release: 4%{?dist}
Summary: Zope testrunner script
License: ZPLv2.1
URL: https://pypi.python.org/pypi/%{srcname}
Source0: https://files.pythonhosted.org/packages/source/z/%{srcname}/%{srcname}-%{version}.zip
# Upstream patch to fix spurious test failure on ARM
Patch0: %{name}-test.patch
BuildArch: noarch
BuildRequires: help2man
BuildRequires: python2-devel
BuildRequires: python-fixtures
BuildRequires: python2-setuptools
BuildRequires: python2-six
BuildRequires: python-subunit
BuildRequires: python-zope-exceptions
BuildRequires: python-zope-interface
BuildRequires: python-zope-testing
%if %{with python3}
BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: python3-subunit
BuildRequires: python3-zope-exceptions
BuildRequires: python3-zope-interface
BuildRequires: python3-zope-testing
%endif
%description
This package provides a flexible test runner with layer support.
%package -n python2-%{pkgname}
Summary: Zope testrunner script
Requires: python2-six
Requires: python-subunit
Requires: python-zope-exceptions
Requires: python-zope-interface
Requires: python-zope-testing
%{?python_provide:%python_provide python2-%{pkgname}}
%description -n python2-%{pkgname}
This package provides a flexible test runner with layer support.
%if %{with python3}
%package -n python3-%{pkgname}
Summary: Zope testrunner script
Requires: python3-six
Requires: python3-subunit
Requires: python3-zope-exceptions
Requires: python3-zope-interface
Requires: python3-zope-testing
%{?python_provide:%python_provide python3-%{pkgname}}
%description -n python3-%{pkgname}
This package provides a flexible test runner with layer support.
%endif
%prep
%setup -qc
pushd %{srcname}-%{version}
%patch0
popd
mv %{srcname}-%{version} python2
%if %{with python3}
cp -a python2 python3
pushd python3
popd
%endif
%build
pushd python2
%py2_build
popd
%if %{with python3}
pushd python3
%py3_build
popd
%endif
%install
%if %{with python3}
pushd python3
%py3_install
mv %{buildroot}%{_bindir}/zope-testrunner \
%{buildroot}%{_bindir}/python3-zope-testrunner
mkdir -p %{buildroot}%{_mandir}/man1
PYTHONPATH=%{buildroot}%{python3_sitelib} \
help2man -s 1 -o %{buildroot}%{_mandir}/man1/python3-zope-testrunner.1 \
-N -n "Zope testrunner script" %{buildroot}%{_bindir}/python3-zope-testrunner
popd
%endif
pushd python2
%py2_install
mkdir -p %{buildroot}%{_mandir}/man1
touch %{buildroot}%{python2_sitelib}/zope/__init__.py
PYTHONPATH=%{buildroot}%{python2_sitelib} \
help2man -s 1 -o %{buildroot}%{_mandir}/man1/zope-testrunner.1 \
-N -n "Zope testrunner script" %{buildroot}%{_bindir}/zope-testrunner
rm %{buildroot}%{python2_sitelib}/zope/__init__.py*
popd
%check
# The tests don't work with an uninstalled zope.testrunner because python
# finds the installed zope package, which doesn't contain testrunner. We fake
# out python by copying the entire installed tree to a local directory and
# adding this package inside the zope directory.
pushd python2
mkdir lib
cp -a %{_prefix}/lib/python%{python2_version} lib
if [ -d %{_prefix}/lib64/python%{python2_version} ]; then
mkdir lib64
cp -a %{_prefix}/lib64/python%{python2_version} lib64
fi
cp -a build/lib/zope/testrunner lib/python%{python2_version}/site-packages/zope
export PYTHONHOME=$PWD:$PWD
%{__python2} setup.py test
popd
# %%if %%{with python3}
# The python 3 tests currently do not work. The subunit developers say the
# problem lies with zope: https://bugs.launchpad.net/subunit/+bug/1336384.
# The zope developers are working on the problem, but haven't fixed it yet:
# https://github.com/zopefoundation/zope.testrunner/pull/23.
#
# pushd python3
# mkdir lib
# cp -a %%{_prefix}/lib/python%%{python3_version} lib
# if [ -d %%{_prefix}/lib64/python%%{python3_version} ]; then
# mkdir lib64
# cp -a %%{_prefix}/lib64/python%%{python3_version} lib64
# fi
# mkdir include
# cp -a %%{_includedir}/python%%{python3_version}* include
# cp -a build/lib/zope/testrunner lib/python%%{python3_version}/site-packages/zope
# export PYTHONHOME=$PWD:$PWD
# %%{__python3} setup.py test
# popd
# %%endif
%files -n python2-%{pkgname}
%doc python2/CHANGES.rst python2/README.rst
%license python2/COPYRIGHT.rst python2/LICENSE.rst
%{_bindir}/zope-testrunner
%{_mandir}/man1/zope-testrunner.1*
%{python2_sitelib}/zope/testrunner/
%{python2_sitelib}/%{srcname}*
%if %{with python3}
%files -n python3-%{pkgname}
%doc python3/CHANGES.rst python3/README.rst
%license python3/COPYRIGHT.rst python3/LICENSE.rst
%{_bindir}/python3-zope-testrunner
%{_mandir}/man1/python3-zope-testrunner.1*
%{python3_sitelib}/zope/testrunner/
%{python3_sitelib}/%{srcname}*
%endif
%changelog
* Mon Dec 19 2016 Miro HronĨok <mhroncok@redhat.com> - 4.5.1-4
- Rebuild for Python 3.6
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.5.1-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Tue Jun 21 2016 Jerry James <loganjerry@gmail.com> - 4.5.1-2
- Fix spurious build failures due to use of _libdir in a noarch package
* Mon Jun 20 2016 Jerry James <loganjerry@gmail.com> - 4.5.1-1
- New upstream version
* Wed Jun 8 2016 Jerry James <loganjerry@gmail.com> - 4.5.0-3
- Do not test with detox; it downloads files at build time
* Wed Jun 1 2016 Jerry James <loganjerry@gmail.com> - 4.5.0-2
- Fix directory ownership
- Add man page
* Wed Jun 1 2016 Jerry James <loganjerry@gmail.com> - 4.5.0-1
- Initial RPM