pyproject-rpm-macros/tests/python-setuptools.spec
Lukáš Zachar 2ed8664eb1 Change the test source location
Change the test source location to support evolving downstream testing
requirements. This is needed both for downstream certification
activities and changes to test development for internal infrastructure
differences.
2024-12-02 10:45:32 +01:00

111 lines
3.2 KiB
RPMSpec

Name: python-setuptools
# on the CI we test different version of setuptools on different Fedora versions
# don't package software like this in Fedora please
%if 0%{?fedora} || 0%{?rhel} >= 10
Version: 67.7.2
%else
Version: 59.6.0
%endif
Release: 0%{?dist}
Summary: Easily build and distribute Python packages
# see the real Fedora package for explanation:
License: MIT and (BSD or ASL 2.0)
URL: https://pypi.python.org/pypi/setuptools
Source: %{pypi_source setuptools %{version}}
# Patch from Fedora proper
%if 0%{?fedora} || 0%{?rhel} >= 10
Patch: Remove-optional-or-unpackaged-test-deps.patch
%else
Patch: 0001-Remove-optional-or-unpackaged-test-deps.patch
%endif
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: pyproject-rpm-macros
BuildRequires: gcc
# too many missing tests deps in EPEL 9
%if 0%{?fedora}
%bcond_without tests
%else
%bcond_with tests
%endif
%description
This package tests 2 things:
- %%{_pyproject_builddir} does not leak to pytest collection (rhzb#1935212)
- TODO %%{pyproject_files} has escaped spaces (rhzb#1976363)
%package -n python3-setuptools
Summary: %{summary}
# For users who might see ModuleNotFoundError: No module named 'pkg_resoureces'
%py_provides python3-pkg_resources
%py_provides python3-pkg-resources
%description -n python3-setuptools
...
%prep
%autosetup -p1 -n setuptools-%{version}
%if 0%{?rhel} && 0%{?rhel} < 10
# The following test deps are optional and either not desired or not available in Fedora:
sed -Ei setup.cfg -e '/\bpytest-(checkdocs|black|cov|mypy|enabler)\b/d' \
-e '/\bflake8\b/d' \
-e '/\bpaver\b/d'
# Strip pytest options from the above
sed -i pytest.ini -e 's/ --flake8//' \
-e 's/ --cov//'
%endif
%generate_buildrequires
%pyproject_buildrequires -r %{?with_tests:-x testing}
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files setuptools pkg_resources _distutils_hack -l
# https://github.com/pypa/setuptools/issues/2709
rm -rf %{buildroot}%{python3_sitelib}/pkg_resources/tests/
sed -i '/tests/d' %{pyproject_files}
%check
# https://github.com/pypa/setuptools/discussions/2607
rm pyproject.toml
%if %{with tests}
# We only run a subset of tests to speed things up and be less fragile
PRE_BUILT_SETUPTOOLS_WHEEL=%{_pyproject_wheeldir}/setuptools-%{version}-py3-none-any.whl \
PYTHONPATH=$(pwd) %pytest --ignore=pavement.py \
--ignore=setuptools/tests/test_develop.py \
--ignore=setuptools/tests/test_editable_install.py \
--ignore=setuptools/tests/config/test_apply_pyprojecttoml.py \
-k "sdist" -n %{_smp_build_ncpus}
%else
%pyproject_check_import
%endif
# Internal check that license file was recognized correctly
grep '^%%license' %{pyproject_files} > tested.license
echo '%%license %{python3_sitelib}/setuptools-%{version}.dist-info/LICENSE' > expected.license
diff tested.license expected.license
%files -n python3-setuptools -f %{pyproject_files}
%doc docs/* CHANGES.rst README.rst
%{python3_sitelib}/distutils-precedence.pth