Update to 2.28.1, rediff patches

One patch replaced by a pytest -k arg (more maintainable this
way). The charset_normalizer sed isn't needed any more (and
didn't do anything any more), upstream changed that dep. Upstream
dropped the cert file in 2017 so we don't need to try and remove
it any more.
This commit is contained in:
Adam Williamson 2022-07-12 14:20:31 -07:00
parent bafd1c7a92
commit 6522c375f6
8 changed files with 60 additions and 126 deletions

1
.gitignore vendored
View File

@ -49,3 +49,4 @@
/requests-v2.26.0.tar.gz
/requests-v2.27.0.tar.gz
/requests-v2.27.1.tar.gz
/requests-v2.28.1.tar.gz

View File

@ -1,55 +0,0 @@
From bb1c91432c5e9a1f402692db5c80c65136656afb Mon Sep 17 00:00:00 2001
From: Jeremy Cline <jeremy@jcline.org>
Date: Tue, 13 Jun 2017 09:08:09 -0400
Subject: [PATCH] Remove tests that use the tarpit
The latest version of Mock has started using systemd containers. The
systemd-nspawn command is being run with --private-network, which
immediately kills connections to something other than localhost. These
tests depend on the connection not being killed immediately and that
they are never responded to.
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
---
tests/test_requests.py | 25 -------------------------
1 file changed, 25 deletions(-)
diff --git a/tests/test_requests.py b/tests/test_requests.py
index 7d4a4eb5..8d1c55fc 100644
--- a/tests/test_requests.py
+++ b/tests/test_requests.py
@@ -2186,31 +2186,6 @@ class TestTimeout:
except ReadTimeout:
pass
- @pytest.mark.parametrize(
- 'timeout', (
- (0.1, None),
- Urllib3Timeout(connect=0.1, read=None)
- ))
- def test_connect_timeout(self, timeout):
- try:
- requests.get(TARPIT, timeout=timeout)
- pytest.fail('The connect() request should time out.')
- except ConnectTimeout as e:
- assert isinstance(e, ConnectionError)
- assert isinstance(e, Timeout)
-
- @pytest.mark.parametrize(
- 'timeout', (
- (0.1, 0.1),
- Urllib3Timeout(connect=0.1, read=0.1)
- ))
- def test_total_timeout_connect(self, timeout):
- try:
- requests.get(TARPIT, timeout=timeout)
- pytest.fail('The connect() request should time out.')
- except ConnectTimeout:
- pass
-
def test_encoded_methods(self, httpbin):
"""See: https://github.com/psf/requests/issues/2316"""
r = requests.request(b'GET', httpbin('get'))
--
2.24.1

View File

@ -1,44 +0,0 @@
From cc1b9954ca7dcd90a694f7e2e9990c883bf7b647 Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
Date: Wed, 21 Jul 2021 12:05:53 +0200
Subject: [PATCH] patch-requests-certs.py-to-use-the-system-CA-bundle
---
requests/certs.py | 7 ++++++-
setup.py | 1 -
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/requests/certs.py b/requests/certs.py
index a14a7ee..b4957d1 100644
--- a/requests/certs.py
+++ b/requests/certs.py
@@ -10,8 +10,13 @@ only one — the one from the certifi package.
If you are packaging Requests, e.g., for a Linux distribution or a managed
environment, you can change the definition of where() to return a separately
packaged CA bundle.
+
+This Fedora-patched package returns "/etc/pki/tls/certs/ca-bundle.crt" provided
+by the ca-certificates RPM package.
"""
-from certifi import where
+def where():
+ """Return the absolute path to the system CA bundle."""
+ return '/etc/pki/tls/certs/ca-bundle.crt'
if __name__ == '__main__':
print(where())
diff --git a/setup.py b/setup.py
index ce5e5c8..de86a91 100755
--- a/setup.py
+++ b/setup.py
@@ -46,7 +46,6 @@ requires = [
'idna>=2.5,<3; python_version < "3"',
'idna>=2.5,<4; python_version >= "3"',
'urllib3>=1.21.1,<1.27',
- 'certifi>=2017.4.17'
]
test_requirements = [
--
2.31.1

View File

@ -9,8 +9,8 @@
Name: python-requests
Version: 2.27.1
Release: 5%{?dist}
Version: 2.28.1
Release: 1%{?dist}
Summary: HTTP library, written in Python, for human beings
License: ASL 2.0
@ -18,17 +18,14 @@ URL: https://pypi.io/project/requests
Source0: https://github.com/requests/requests/archive/v%{version}/requests-v%{version}.tar.gz
# Explicitly use the system certificates in ca-certificates.
# https://bugzilla.redhat.com/show_bug.cgi?id=904614
Patch0: patch-requests-certs.py-to-use-the-system-CA-bundle.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1450608
Patch2: Remove-tests-that-use-the-tarpit.patch
Patch0: requests-2.28.1-system-certs.patch
# Use 127.0.0.1 not localhost for socket.bind() in the Server test
# class, to fix tests in Koji's no-network environment
# This probably isn't really upstreamable, because I guess localhost
# could technically be IPv6 or something, and our no-network env is
# a pretty odd one so this is a niche requirement.
Patch3: requests-2.12.4-tests_nonet.patch
Patch1: requests-2.28.1-tests_nonet.patch
BuildArch: noarch
@ -73,20 +70,14 @@ designed to make HTTP requests easy for developers.
%prep
%autosetup -p1 -n requests-%{version}
# Unbundle the certificate bundle from mozilla.
rm -rf requests/cacert.pem
# env shebang in nonexecutable file
sed -i '/#!\/usr\/.*python/d' requests/certs.py
# Some doctests use the internet and fail to pass in Koji. Since doctests don't have names, I don't
# know a way to skip them. We also don't want to patch them out, because patching them out will
# change the docs. Thus, we set pytest not to run doctests at all.
sed -i 's/ --doctest-modules//' pytest.ini
sed -i 's/ --doctest-modules//' pyproject.toml
# Allow charset_normalizer 2.1.0 and newer up to 3.0.0
# Backport of: https://github.com/psf/requests/pull/6169
sed -i "s/charset_normalizer~=2.0.0/charset_normalizer~=2.0/" setup.py
%build
%pyproject_wheel
@ -99,7 +90,8 @@ sed -i "s/charset_normalizer~=2.0.0/charset_normalizer~=2.0/" setup.py
%if %{with tests}
%check
%pytest -v
# Omitted tests use a TARPIT server so require network connection
%pytest -v -k "not (test_connect_timeout or test_total_timeout_connect)"
%endif
@ -109,6 +101,9 @@ sed -i "s/charset_normalizer~=2.0.0/charset_normalizer~=2.0/" setup.py
%changelog
* Tue Jul 12 2022 Adam Williamson <awilliam@redhat.com> - 2.28.1-1
- Update to 2.28.1, rediff patches
* Mon Jun 20 2022 Lumír Balhar <lbalhar@redhat.com> - 2.27.1-5
- Allow charset_normalizer 2.1.0 and newer up to 3.0.0

View File

@ -1,11 +0,0 @@
--- requests-2.12.4/tests/testserver/server.py 2016-12-21 11:31:56.000000000 -0800
+++ requests-2.12.4/tests/testserver/server.py.new 2016-12-30 10:40:06.085995065 -0800
@@ -27,7 +27,7 @@
"""Dummy server using for unit testing"""
WAIT_EVENT_TIMEOUT = 5
- def __init__(self, handler=None, host='localhost', port=0, requests_to_handle=1, wait_to_close_event=None):
+ def __init__(self, handler=None, host='127.0.0.1', port=0, requests_to_handle=1, wait_to_close_event=None):
super(Server, self).__init__()
self.handler = handler or consume_socket_content

View File

@ -0,0 +1,37 @@
--- requests-2.28.1/requests/certs.py 2022-07-12 13:55:25.378079641 -0700
+++ requests-2.28.1/requests/certs.py.new 2022-07-12 13:57:03.834621295 -0700
@@ -9,8 +9,13 @@
If you are packaging Requests, e.g., for a Linux distribution or a managed
environment, you can change the definition of where() to return a separately
packaged CA bundle.
+
+This Fedora-patched package returns "/etc/pki/tls/certs/ca-bundle.crt" provided
+by the ca-certificates RPM package.
"""
-from certifi import where
+def where():
+ """Return the absolute path to the system CA bundle."""
+ return '/etc/pki/tls/certs/ca-bundle.crt'
if __name__ == "__main__":
print(where())
--- requests-2.28.1/setup.py 2022-06-29 08:09:11.000000000 -0700
+++ requests-2.28.1/setup.py.new 2022-07-12 13:58:33.830116402 -0700
@@ -62,7 +62,6 @@
"charset_normalizer>=2,<3",
"idna>=2.5,<4",
"urllib3>=1.21.1,<1.27",
- "certifi>=2017.4.17",
]
test_requirements = [
"pytest-httpbin==0.0.7",
--- requests-2.28.1/setup.cfg 2022-06-29 08:09:11.000000000 -0700
+++ requests-2.28.1/setup.cfg.new 2022-07-12 13:58:19.619038220 -0700
@@ -4,7 +4,6 @@
socks
use_chardet_on_py3
requires-dist =
- certifi>=2017.4.17
charset_normalizer>=2,<3
idna>=2.5,<4
urllib3>=1.21.1,<1.27

View File

@ -0,0 +1,11 @@
--- requests-2.28.1/tests/testserver/server.py 2022-06-29 08:09:11.000000000 -0700
+++ requests-2.28.1/tests/testserver/server.py.new 2022-07-12 14:04:30.218077055 -0700
@@ -29,7 +29,7 @@
def __init__(
self,
handler=None,
- host="localhost",
+ host="127.0.0.1",
port=0,
requests_to_handle=1,
wait_to_close_event=None,

View File

@ -1 +1 @@
SHA512 (requests-v2.27.1.tar.gz) = 191f8e0d566d541ab4e0c17bc9a637eb79e841605f6bbb9a0e559bd7bf0f00a71be99e21fa5b5431b9d49cb4a64debd0d7083658f98b723cf976833bb685cb9a
SHA512 (requests-v2.28.1.tar.gz) = caed2d08340c79af9448eefaa1df796f9112a7c8da30b218d5f342326a9629d95928c0978b9600e4bd7f56a297ef41afb088af390738be431b91b8c7429e741b