123 lines
3.0 KiB
RPMSpec
123 lines
3.0 KiB
RPMSpec
%global srcname sure
|
||
|
||
Name: python-%{srcname}
|
||
Version: 2.0.0
|
||
Release: %autorelease
|
||
Summary: Idiomatic assertion toolkit with human-friendly failure messages
|
||
|
||
License: GPLv3+
|
||
URL: https://github.com/gabrielfalcao/%{srcname}
|
||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||
|
||
# Trivial downstream man page for (nearly pointless) executable
|
||
Source1: %{srcname}.1
|
||
|
||
# Python 3.10 workaround
|
||
# In test_context_is_not_optional(), only check the exception type
|
||
# https://github.com/gabrielfalcao/sure/issues/169
|
||
Patch0: python3.10-workaround.patch
|
||
|
||
BuildArch: noarch
|
||
|
||
BuildRequires: python3-devel
|
||
BuildRequires: pyproject-rpm-macros
|
||
|
||
# TODO: remove mock dependency from install_requires
|
||
# https://fedoraproject.org/wiki/Changes/DeprecatePythonMock
|
||
# https://github.com/gabrielfalcao/sure/pull/161
|
||
|
||
# Test dependencies
|
||
# TODO: remove the test dependency on nose
|
||
# https://fedoraproject.org/wiki/Changes/DeprecateNose
|
||
BuildRequires: python3dist(nose)
|
||
# development.txt: pytest==6.2.4
|
||
BuildRequires: python3dist(pytest)
|
||
# development.txt: pytest-cov==2.12.1
|
||
# (We don’t need coverage reports, but it is easier to add the dependency than
|
||
# to patch setup.cfg.)
|
||
BuildRequires: python3dist(pytest-cov)
|
||
|
||
# Documentation dependencies
|
||
BuildRequires: make
|
||
# development.txt: Sphinx==2.3.1
|
||
BuildRequires: python3dist(sphinx)
|
||
# development.txt: sphinx-rtd-theme==0.4.3
|
||
BuildRequires: python3dist(sphinx-rtd-theme)
|
||
BuildRequires: python3-docs
|
||
|
||
%global common_description %{expand:
|
||
An idiomatic testing library for python with powerful and flexible assertions
|
||
created by Gabriel Falcão. Sure’s developer experience is inspired and modeled
|
||
after RSpec Expectations and should.js.}
|
||
|
||
%description %{common_description}
|
||
|
||
|
||
%package -n python3-%{srcname}
|
||
Summary: %{summary}
|
||
|
||
%description -n python3-%{srcname} %{common_description}
|
||
|
||
|
||
%package doc
|
||
Summary: Documentation for Sure
|
||
|
||
Requires: python3-docs
|
||
|
||
%description doc %{common_description}
|
||
|
||
|
||
%prep
|
||
%autosetup -p1 -n %{srcname}-%{version}
|
||
|
||
# Use local inventories in intersphinx mappings.
|
||
#
|
||
# Currently, python-redis does not package the Sphinx documentation, so we
|
||
# remove that mapping:
|
||
# 'redis': ('https://redis-py.readthedocs.io/en/latest/', None)
|
||
sed -r -i \
|
||
-e 's|https://docs.python.org/3?|/%{_docdir}/python3-docs/html|' \
|
||
-e '/redis.*https.*readthedocs/d' \
|
||
docs/source/conf.py
|
||
|
||
cp -p '%{SOURCE1}' .
|
||
|
||
|
||
%generate_buildrequires
|
||
%pyproject_buildrequires -r
|
||
|
||
|
||
%build
|
||
%pyproject_wheel
|
||
env PYTHONPATH="${PWD}" %make_build -C docs/ html SPHINXOPTS='%{?_smp_mflags}'
|
||
rm -vf docs/_build/html/.buildinfo
|
||
|
||
|
||
%install
|
||
%pyproject_install
|
||
%pyproject_save_files %{srcname}
|
||
|
||
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 %{srcname}.1
|
||
|
||
|
||
%check
|
||
%pytest
|
||
|
||
|
||
%files -n python3-%{srcname} -f %{pyproject_files}
|
||
%license COPYING
|
||
%{_bindir}/%{srcname}
|
||
%{_mandir}/man1/%{srcname}.1*
|
||
|
||
|
||
%files doc
|
||
%license COPYING
|
||
%doc CHANGELOG.md
|
||
%doc README.rst
|
||
%doc TODO.rst
|
||
%doc docs/build/html
|
||
|
||
|
||
%changelog
|
||
%autochangelog
|