#
# Conditional build:
-%bcond_with tests # test target (tests not included in dist tarball as of 2.13.0)
+%bcond_with tests # pytest tests (one test fails with pytest-httpbin 1.0.0)
%bcond_without python2 # CPython 2.x module
%bcond_without python3 # CPython 3.x module
-%define urllib3ver 1.21.1
+%define urllib3_ver 1.21.1
%define module requests
%define egg_name requests
-%define pypi_name requests
Summary: HTTP library for Python 2
Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 2
Name: python-%{module}
-Version: 2.18.3
+# keep 2.27.x here for python2 support
+Version: 2.27.1
Release: 1
License: Apache v2.0
Group: Development/Languages/Python
-Source0: https://files.pythonhosted.org/packages/source/r/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
-# Source0-md5: c8f60cf816a35c0c3fef0a40d0e407a6
+#Source0Download: https://pypi.org/simple/requests/
+Source0: https://files.pythonhosted.org/packages/source/r/requests/%{module}-%{version}.tar.gz
+# Source0-md5: bcc01b73974a305cc7c5b092e7d07004
Patch0: system-cert.patch
-URL: http://python-requests.org/
+Patch1: %{name}-reqs.patch
+Patch2: %{name}-disable-xdist.patch
+URL: https://docs.python-requests.org/
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.713
%if %{with python2}
-BuildRequires: python-modules >= 1:2.6
+BuildRequires: python-modules >= 1:2.7
BuildRequires: python-setuptools
%if %{with tests}
+BuildRequires: python-PySocks >= 1.5.8
BuildRequires: python-certifi >= 2017.4.17
BuildRequires: python-chardet >= 3.0.2
+BuildRequires: python-chardet < 5
+# idna 3 not supported for python2
BuildRequires: python-idna >= 2.5
-BuildRequires: python-pytest >= 2.8.0
+BuildRequires: python-idna < 3
+BuildRequires: python-pytest >= 3
BuildRequires: python-pytest-cov
BuildRequires: python-pytest-httpbin >= 0.0.7
-BuildRequires: python-pytest-mock
-BuildRequires: python-urllib3 >= %{urllib3ver}
+BuildRequires: python-pytest-mock >= 2.0.0
+BuildRequires: python-pytest-xdist
+BuildRequires: python-urllib3 >= %{urllib3_ver}
+BuildRequires: python-urllib3 < 1.27
%endif
%endif
%if %{with python3}
-BuildRequires: python3-modules >= 1:3.2
+BuildRequires: python3-modules >= 1:3.6
+BuildRequires: python3-setuptools
%if %{with tests}
+BuildRequires: python3-PySocks >= 1.5.8
BuildRequires: python3-certifi >= 2017.4.17
-BuildRequires: python3-chardet >= 3.0.2
+BuildRequires: python3-charset_normalizer >= 2
+BuildRequires: python3-charset_normalizer < 2.1
BuildRequires: python3-idna >= 2.5
-BuildRequires: python3-pytest >= 2.8.0
+BuildRequires: python3-idna < 4
+BuildRequires: python3-pytest >= 3
BuildRequires: python3-pytest-cov
BuildRequires: python3-pytest-httpbin >= 0.0.7
-BuildRequires: python3-pytest-mock
-BuildRequires: python3-urllib3 >= %{urllib3ver}
+BuildRequires: python3-pytest-mock >= 2.0.0
+BuildRequires: python3-pytest-xdist
+BuildRequires: python3-urllib3 >= %{urllib3_ver}
+BuildRequires: python3-urllib3 < 1.27
%endif
%endif
Suggests: ca-certificates
# for python2 only to get SNI working. python3 doesn't need this
-Requires: python-ndg-httpsclient
+Requires: python-cryptography >= 1.3.4
Requires: python-pyOpenSSL >= 0.14
-Requires: python-pyasn1
Requires: python-urllib3 >= 1.22-2
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Summary: HTTP library for Python 3
Summary(pl.UTF-8): Biblioteka HTTP dla Pythona 3
Group: Development/Languages/Python
+Requires: python3-modules >= 1:3.6
+Requires: python3-charset_normalizer >= 2
+# for https
+Requires: python3-cryptography >= 1.3.4
+Requires: python3-idna >= 2.5
+Requires: python3-pyOpenSSL >= 0.14
Requires: python3-urllib3 >= 1.22-2
Suggests: ca-certificates
%prep
%setup -q -n %{module}-%{version}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
%if %{with python2}
-%py_build %{?with_tests:test}
+%py_build
+
+%if %{with tests}
+PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
+PYTEST_PLUGINS="pytest_httpbin.plugin,pytest_mock" \
+%{__python} -m pytest tests
+%endif
%endif
%if %{with python3}
-%py3_build %{?with_tests:test}
+%py3_build
+
+%if %{with tests}
+PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
+PYTEST_PLUGINS="pytest_httpbin.plugin,pytest_mock" \
+%{__python3} -m pytest tests
+%endif
%endif
%install
%if %{with python2}
%py_install
-%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
-%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
+
%py_postclean
%endif
%if %{with python2}
%files
%defattr(644,root,root,755)
-%doc HISTORY.rst README.rst
+%doc HISTORY.md README.md
%{py_sitescriptdir}/%{module}
%{py_sitescriptdir}/%{egg_name}-%{version}-py*.egg-info
%endif
%if %{with python3}
%files -n python3-requests
%defattr(644,root,root,755)
-%doc HISTORY.rst README.rst
+%doc HISTORY.md README.md
%{py3_sitescriptdir}/%{module}
%{py3_sitescriptdir}/%{egg_name}-%{version}-py*.egg-info
%endif