+# TODO: finish doc and tests (BRs)
#
# Conditional build:
%bcond_with doc # Sphinx documentation
-%bcond_without tests # pytest tests
+%bcond_with tests # pytest tests
%bcond_without python2 # CPython 2.x module
%bcond_without python3 # CPython 3.x module
%if %{with python2}
BuildRequires: python >= 1:2.7
BuildRequires: python-modules >= 1:2.7.10-6
-BuildRequires: python-setuptools
+BuildRequires: python-setuptools >= 1:41
+BuildRequires: python-setuptools_scm >= 2
%if %{with tests}
+# runtime dependencies
BuildRequires: python-distlib >= 0.3.1
+BuildRequires: python-distlib < 1
BuildRequires: python-filelock >= 3.2
-BuildRequires: python-importlib_resources >= 1
+BuildRequires: python-filelock < 4
+BuildRequires: python-importlib_metadata >= 0.12
+BuildRequires: python-importlib_resources >= 1.0
BuildRequires: python-pathlib2 >= 2.3.3
+BuildRequires: python-pathlib2 < 3
BuildRequires: python-platformdirs >= 2
-BuildRequires: python-pytest
+BuildRequires: python-platformdirs < 3
BuildRequires: python-six >= 1.9
+BuildRequires: python-six < 2
+# test-only dependencies
+BuildRequires: python-coverage >= 4
+BuildRequires: python-coverage-enable-subprocess >= 1
+BuildRequires: python-flaky >= 3
+BuildRequires: python-pytest >= 4
+BuildRequires: python-pytest-env >= 0.6.2
+BuildRequires: python-pytest-freezegun >= 0.4.1
+BuildRequires: python-pytest-mock >= 2
+BuildRequires: python-pytest-randomly >= 1
+BuildRequires: python-pytest-timeout >= 1
%endif
%endif
%if %{with python3}
-BuildRequires: python3 >= 1:3.4
+BuildRequires: python3 >= 1:3.5
BuildRequires: python3-modules >= 1:3.5.0-6
-BuildRequires: python3-setuptools
+BuildRequires: python3-setuptools >= 1:41
+BuildRequires: python3-setuptools_scm >= 2
%if %{with tests}
+# runtime dependencies
BuildRequires: python3-distlib >= 0.3.1
+BuildRequires: python3-distlib < 1
BuildRequires: python3-filelock >= 3.2
+BuildRequires: python3-filelock < 4
+%if "%{py3_ver}" < "3.8"
+BuildRequires: python3-importlib-metadata >= 0.12
+%endif
+%if "%{py3_ver}" < "3.7"
+BuildRequires: python3-importlib-resources >= 1.0
+%endif
BuildRequires: python3-platformdirs >= 2
+BuildRequires: python3-platformdirs < 3
BuildRequires: python3-pytest
BuildRequires: python3-six >= 1.9
+BuildRequires: python3-six < 2
+# test-only dependencies
+BuildRequires: python-coverage >= 4
+BuildRequires: python-coverage-enable-subprocess >= 1
+BuildRequires: python-flaky >= 3
+BuildRequires: python-packaging >= 20.0
+BuildRequires: python-pytest >= 4
+BuildRequires: python-pytest-env >= 0.6.2
+BuildRequires: python-pytest-freezegun >= 0.4.1
+BuildRequires: python-pytest-mock >= 2
+BuildRequires: python-pytest-randomly >= 1
+BuildRequires: python-pytest-timeout >= 1
%endif
%endif
%if %{with doc}
-BuildRequires: sphinx-pdg
+BuildRequires: python3-sphinx-argparse >= 0.2.5
+BuildRequires: python3-sphinx_rtd_theme >= 0.4.3
+BuildRequires: python3-proselint >= 0.10.2
+BuildRequires: python3-towncrier >= 21.3
+BuildRequires: sphinx-pdg >= 3
%endif
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.714
%build
%if %{with python2}
-%py_build %{?with_tests:test}
+%py_build
+
+%if %{with tests}
+%{__python} -m pytest tests
+%endif
%endif
%if %{with python3}
-%py3_build %{?with_tests:test}
+%py3_build
+
+%if %{with tests}
+%{__python3} -m pytest tests
+%endif
%endif
%if %{with doc}
%defattr(644,root,root,755)
%doc LICENSE README.md %{?with_doc:docs/_build/text/*.txt}
%attr(755,root,root) %{_bindir}/virtualenv-2
-%{py_sitescriptdir}/virtualenv-%{version}-py*.egg-info
%{py_sitescriptdir}/virtualenv
+%{py_sitescriptdir}/virtualenv-%{version}-py*.egg-info
%endif
%if %{with python3}
%defattr(644,root,root,755)
%doc LICENSE README.md %{?with_doc:docs/_build/text/*.txt}
%attr(755,root,root) %{_bindir}/virtualenv-3
-%{py3_sitescriptdir}/virtualenv-%{version}-py*.egg-info
%{py3_sitescriptdir}/virtualenv
+%{py3_sitescriptdir}/virtualenv-%{version}-py*.egg-info
%endif
%files -n virtualenv