python-requests/python-requests.spec
Jan Matejek 8c0d90828d Accepting request 486162 from devel:languages:python:singlespec
- update for multipython build
- synchronize with python 3 version
- debundle urllib3 and chardet
- enable test suite

- update urllib3 requirement to 1.19.1
- add idna requirement, refresh unbundling patch

OBS-URL: https://build.opensuse.org/request/show/486162
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-requests?expand=0&rev=96
2017-04-06 14:56:39 +00:00

132 lines
4.5 KiB
RPMSpec

#
# spec file for package python-requests
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define urllib3_version 1.20
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-requests
Version: 2.13.0
Release: 0
Summary: Awesome Python HTTP Library That's Actually Usable
License: Apache-2.0
Group: Development/Languages/Python
Url: http://python-requests.org/
#Source: https://files.pythonhosted.org/packages/source/r/requests/requests-%{version}.tar.gz
Source: https://github.com/kennethreitz/requests/archive/v%{version}.tar.gz
Source100: PACKAGING_NOTES
Source101: set_urllib3_version.sh
# PATCH-FIX-OPENSUSE no-default-cacert.patch -- Completely ignore the internal CA bundle.
Patch0: no-default-cacert.patch
# PATCH-FIX-OPENSUSE requests-do-not-use-bundle.patch -- Use system libraries instead of bundled ones.
Patch1: requests-do-not-use-bundle.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module py}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module urllib3 >= %urllib3_version}
BuildRequires: ca-certificates
BuildRequires: python
BuildRequires: python-rpm-macros
# SECTION test requirements
BuildRequires: %{python_module PySocks >= 1.5.6}
BuildRequires: %{python_module chardet}
BuildRequires: %{python_module idna >= 2.2}
BuildRequires: %{python_module pytest-httpbin}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest}
# /SECTION
Requires: ca-certificates
Requires: python
# for good measure, at least recommend an actual set of certificates
Recommends: ca-certificates-mozilla
Recommends: python-pyOpenSSL >= 0.14
Recommends: python-cryptography >= 1.3.4
Recommends: python-PySocks >= 1.5.6
Requires: python-chardet
Requires: python-idna >= 2.2
Requires: python-py
Requires: python-urllib3 >= %urllib3_version
BuildArch: noarch
%python_subpackages
%description
Requests is an ISC Licensed HTTP library, written in Python, for
human beings.
Most existing Python modules for sending HTTP requests are
extremely verbose and cumbersome. Python's builtin urllib2 module
provides most of the HTTP capabilities you should need, but the api
is thoroughly broken. It requires an enormous amount of work (even
method overrides) to perform the simplest of tasks.
Features:
- Extremely simple GET, HEAD, POST, PUT, DELETE Requests:
+ Simple HTTP Header Request Attachment.
+ Simple Data/Params Request Attachment.
+ Simple Multipart File Uploads.
+ CookieJar Support.
+ Redirection History.
+ Redirection Recursion Urllib Fix.
+ Auto Decompression of GZipped Content.
+ Unicode URL Support.
- Simple Authentication:
+ Simple URL + HTTP Auth Registry.
%prep
%setup -q -n requests-%{version}
%patch0 -p1
%patch1 -p1
rm -f requests/cacert.pem
# fill out required urllib3 version
sed -i s/#URLLIB3VERSION#/%{urllib3_version}/ setup.py
echo "urllib3 >= %{urllib3_version}" >> requirements.txt
# drop shebang from certs.py
sed -i '1s/^#!.*$//' requests/certs.py
%build
%python_build
%install
%python_install
# check that urllib3 is not installed
test ! -e %{buildroot}%{python3_sitelib}/requests/packages/urllib3
%check
# first check that we have a good version of urllib3
# DO NOT DISABLE THIS TEST unless you know what you are doing
# see PACKAGING_NOTES for details
python3 <<END
import sys, pkg_resources
from requests.packages.urllib3 import __version__
required = "urllib3 >= {}".format(__version__)
dist = pkg_resources.get_distribution(required)
if dist is None or not dist.location.startswith("%{_prefix}"):
sys.exit(1)
END
# exclude tests connecting to TARPIT
%python_exec -m pytest tests -k "not (TestTimeout and connect)"
%files %{python_files}
%defattr(-,root,root)
%doc HISTORY.rst LICENSE NOTICE README.rst
%{python_sitelib}/requests/
%{python_sitelib}/requests-*
%changelog