python-sure/python-sure.spec

123 lines
3.1 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sphinx-generated HTML documentation is not suitable for packaging; see
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
#
# We can generate PDF documentation as a substitute.
%bcond_without doc_pdf
Name: python-sure
Version: 2.0.1
Release: %autorelease
Summary: Idiomatic assertion toolkit with human-friendly failure messages
License: GPL-3.0-or-later
URL: https://github.com/gabrielfalcao/sure
Source0: %{url}/archive/%{version}/sure-%{version}.tar.gz
# Trivial downstream man page for (nearly pointless) executable
Source1: sure.1
# Python 3.10 workaround
# In test_context_is_not_optional(), only check the exception type
# https://github.com/gabrielfalcao/sure/issues/169
Patch: python3.10-workaround.patch
BuildArch: noarch
BuildRequires: python3-devel
# TODO: remove mock dependency from install_requires
# https://fedoraproject.org/wiki/Changes/DeprecatePythonMock
# https://github.com/gabrielfalcao/sure/pull/161
# Test dependencies
# development.txt: pytest==6.2.4
BuildRequires: python3dist(pytest)
# Documentation dependencies
%if %{with doc_pdf}
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-sphinx-latex
BuildRequires: latexmk
%endif
%global common_description %{expand:
An idiomatic testing library for python with powerful and flexible assertions
created by Gabriel Falcão. Sures developer experience is inspired and modeled
after RSpec Expectations and should.js.}
%description %{common_description}
%package -n python3-sure
Summary: %{summary}
%description -n python3-sure %{common_description}
%package doc
Summary: Documentation for Sure
%description doc %{common_description}
%prep
%autosetup -p1 -n sure-%{version}
# Drop intersphinx mappings, since we cant download remote inventories and
# cant easily produce working hyperlinks from inventories in local
# documentation packages.
echo 'intersphinx_mapping.clear()' >> docs/source/conf.py
# Do not generate a coverage report; this obviates the BR on pytest-cov
sed -r -i 's/[[:blank:]]--cov=[^[:blank:]]+//' setup.cfg
%generate_buildrequires
%pyproject_buildrequires
%build
%pyproject_wheel
%if %{with doc_pdf}
PYTHONPATH="${PWD}" %make_build -C docs latex \
SPHINXOPTS='-j%{?_smp_build_ncpus}'
%make_build -C docs/build/latex LATEXMKOPTS='-quiet'
%endif
%install
%pyproject_install
%pyproject_save_files sure
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE1}'
%check
# The old_api tests use python3dist(nose), which is deprecated and which we
# have removed from the BuildRequires:
# https://fedoraproject.org/wiki/Changes/DeprecateNose
%pytest --ignore=tests/test_old_api.py
%files -n python3-sure -f %{pyproject_files}
%{_bindir}/sure
%{_mandir}/man1/sure.1*
%files doc
%license COPYING
%doc CHANGELOG.md
%doc README.rst
%doc TODO.rst
%if %{with doc_pdf}
%doc docs/build/latex/Sure.pdf
%endif
%changelog
%autochangelog