Compare commits

...

2 Commits

4 changed files with 123 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
From 37478cf707c19ea4653c62ba3d101c3887c2ca83 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Fri, 22 Mar 2024 08:27:10 +0100
Subject: [PATCH] Fix test_417_openssl.py if pyOpenSSL not available
Only one of the test had the necessary @skipIf.
---
tests/bugfixes/nosetests/test_417_openssl.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/bugfixes/nosetests/test_417_openssl.py b/tests/bugfixes/nosetests/test_417_openssl.py
index 750a3fc..3c2bc6b 100644
--- a/tests/bugfixes/nosetests/test_417_openssl.py
+++ b/tests/bugfixes/nosetests/test_417_openssl.py
@@ -24,6 +24,8 @@ def test_enable_disable_httpretty_extract():
extract_from_urllib3()
expect(urllib3.util.IS_PYOPENSSL).to.be.false
+@skipIf(extract_from_urllib3 is None,
+ "urllib3.contrib.pyopenssl.extract_from_urllib3 does not exist")
def test_enable_disable_httpretty():
"#417 urllib3.contrib.pyopenssl enable -> disable extract"
expect(urllib3.util.IS_PYOPENSSL).to.be.false
--
2.43.0

View File

@@ -0,0 +1,43 @@
From 8e96b1e312d473429fbd08bc867376e9932ad42a Mon Sep 17 00:00:00 2001
From: Carl Smedstad <carl.smedstad@protonmail.com>
Date: Mon, 30 Dec 2024 19:08:26 +0100
Subject: [PATCH] Mock socket.shutdown for compatibility with urllib3 >= 2.3
Version 2.3.0 of urllib3 gets the attribute socket.shutdown which
HTTPretty does no mock. See the following call stack:
/usr/lib/python3.13/site-packages/requests/sessions.py:602: in get
return self.request("GET", url, **kwargs)
/usr/lib/python3.13/site-packages/requests/sessions.py:589: in request
resp = self.send(prep, **send_kwargs)
/usr/lib/python3.13/site-packages/requests/sessions.py:703: in send
r = adapter.send(request, **kwargs)
/usr/lib/python3.13/site-packages/requests/adapters.py:667: in send
resp = conn.urlopen(
/usr/lib/python3.13/site-packages/urllib3/connectionpool.py:787: in urlopen
response = self._make_request(
/usr/lib/python3.13/site-packages/urllib3/connectionpool.py:534: in _make_request
response = conn.getresponse()
/usr/lib/python3.13/site-packages/urllib3/connection.py:513: in getresponse
_shutdown = getattr(self.sock, "shutdown", None)
---
httpretty/core.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/httpretty/core.py b/httpretty/core.py
index 6968645..de7e091 100644
--- a/httpretty/core.py
+++ b/httpretty/core.py
@@ -861,6 +861,9 @@ class fakesock(object):
def recvfrom(self, *args, **kwargs):
return self.forward_and_trace('recvfrom', *args, **kwargs)
+ def shutdown(self, *args, **kwargs):
+ return self.forward_and_trace('shutdown', *args, **kwargs)
+
def recv(self, buffersize=0, *args, **kwargs):
if not self._read_buf:
self._read_buf = io.BytesIO()
--
2.49.0

View File

@@ -1,3 +1,38 @@
-------------------------------------------------------------------
Wed May 28 06:01:26 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add 0001-Mock-socket.shutdown-for-compatibility-with-urllib3-.patch:
* Mock socket.shutdown for compatibility with urllib3 >= 2.3
-------------------------------------------------------------------
Tue Jan 21 14:46:01 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Skip test_httpretty_provides_easy_access_to_querystrings as it is
flaky on OBS workers
-------------------------------------------------------------------
Thu May 23 09:37:54 UTC 2024 - Markéta Machová <mmachova@suse.com>
- Skip test failing with requests 2.32.X
* suprisingly not with the CVE, but with gh#psf/requests#6644
-------------------------------------------------------------------
Fri Mar 22 07:33:35 UTC 2024 - Fabian Vogt <fvogt@suse.com>
- Add patch 0001-Fix-test_417_openssl.py-if-pyOpenSSL-not-available.patch:
* Fix tests without pyOpenSSL support in urllib3
-------------------------------------------------------------------
Thu Mar 7 13:24:32 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Allow building with python-urllib3 >= 2.x
-------------------------------------------------------------------
Fri Dec 29 12:33:24 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
- Do not use python-boto3 when building in SLE where it's currently
not available for python311
-------------------------------------------------------------------
Tue Jun 13 08:37:50 UTC 2023 - ecsos <ecsos@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-httpretty
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,6 +17,11 @@
%{?sle15_python_module_pythons}
%if 0%{?suse_version} < 1550
%bcond_with boto3
%else
%bcond_without boto3
%endif
Name: python-httpretty
Version: 1.1.4
Release: 0
@@ -35,7 +40,13 @@ Patch2: double-slash-paths.patch
Patch3: 460-miliseconds_tests.patch
# PATCH-FIX-OPENSUSE Relax the time for one test case from 2ms to 3ms.
Patch4: relax-test-callback-response.patch
# PATCH-FIX-UPSTREAM https://github.com/gabrielfalcao/HTTPretty/pull/480
Patch5: 0001-Fix-test_417_openssl.py-if-pyOpenSSL-not-available.patch
# PATCH-FIX-UPSTREAM https://github.com/gabrielfalcao/HTTPretty/pull/485
Patch6: 0001-Mock-socket.shutdown-for-compatibility-with-urllib3-.patch
%if %{with boto3}
BuildRequires: %{python_module boto3}
%endif
BuildRequires: %{python_module eventlet}
BuildRequires: %{python_module fakeredis}
BuildRequires: %{python_module freezegun}
@@ -46,7 +57,7 @@ BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module sure}
BuildRequires: %{python_module tornado}
BuildRequires: %{python_module urllib3 with %python-urllib3 < 2}
BuildRequires: %{python_module urllib3}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
@@ -59,6 +70,9 @@ It is similar to Ruby's FakeWeb.
%prep
%autosetup -p1 -n httpretty-%{version}
%if !%{with boto3}
rm tests/bugfixes/nosetests/test_416_boto3.py
%endif
%build
%python_build
@@ -73,7 +87,9 @@ export EVENTLET_NO_GREENDNS=yes
# needs internet connection to httpbin.org
donttest="test_http_passthrough or test_https_passthrough"
# flaky (too slow) on obs
donttest="$donttest or test_httpretty_should_allow_forcing_headers_urllib2 or test_httpretty_should_allow_registering_regexes_with_streaming_responses"
donttest="$donttest or test_httpretty_should_allow_forcing_headers_urllib2 or test_httpretty_should_allow_registering_regexes_with_streaming_responses or test_httpretty_provides_easy_access_to_querystrings"
# gh#gabrielfalcao/HTTPretty#457
donttest="$donttest or test_httpretty_should_handle_paths_starting_with_two_slashes"
%pytest -k "not (${donttest})"
%files %{python_files}