# 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. Sure’s 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 can’t download remote inventories and
# can’t 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='%{?_smp_mflags}'
%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