diff --git a/python-respx.changes b/python-respx.changes index e5fcbb8..786dcee 100644 --- a/python-respx.changes +++ b/python-respx.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Mar 30 08:14:05 UTC 2025 - Dirk Müller + +- update to 0.22.0: + * Support HTTPX 0.28.0, thanks @ndhansen + * Drop support for Python 3.7, to align with HTTPX 0.25.0 + * Update CI test to not fail fast and cancel workflows + * Add dependabot to check GitHub actions packages + * Add Python 3.13 to test suite +- drop respx-pr267-httpx0.28.patch, + respx-pr278-httpx0.28.patch: upstream + ------------------------------------------------------------------- Thu Dec 12 15:14:25 UTC 2024 - Ben Greiner diff --git a/python-respx.spec b/python-respx.spec index 1ff2fc7..f28e8dc 100644 --- a/python-respx.spec +++ b/python-respx.spec @@ -1,7 +1,7 @@ # # spec file for package python-respx # -# Copyright (c) 2024 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 @@ -18,16 +18,12 @@ %{?sle15_python_module_pythons} Name: python-respx -Version: 0.21.1 +Version: 0.22.0 Release: 0 Summary: Mock HTTPX with request patterns and response side effects License: BSD-3-Clause URL: https://github.com/lundberg/respx Source0: https://github.com/lundberg/respx/archive/refs/tags/%{version}.tar.gz#/respx-%{version}.tar.gz -# PATCH-FIX-UPSTREAM respx-pr267-httpx0.28.patch gh#lundberg/respx#267 -Patch0: respx-pr267-httpx0.28.patch -# PATCH-FIX-UPSTREAM respx-pr278-httpx0.28.patch gh#lundberg/respx#278 -Patch1: respx-pr278-httpx0.28.patch BuildRequires: %{python_module Flask} # >= 0.28 for tests because of the Patches BuildRequires: %{python_module httpx >= 0.28} diff --git a/respx-0.21.1.tar.gz b/respx-0.21.1.tar.gz deleted file mode 100644 index 2c1bac5..0000000 --- a/respx-0.21.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:965acc56112007665e1cbcba64e99505bd10e8aba2f41dddb51e7c909e618ea6 -size 432341 diff --git a/respx-0.22.0.tar.gz b/respx-0.22.0.tar.gz new file mode 100644 index 0000000..c4ffbba --- /dev/null +++ b/respx-0.22.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7dd79401855ad952920c49dde0febc396da6619b67ec6a3f4f36d665a9a0d12 +size 432547 diff --git a/respx-pr267-httpx0.28.patch b/respx-pr267-httpx0.28.patch deleted file mode 100644 index 4cd2cfb..0000000 --- a/respx-pr267-httpx0.28.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 4abc14b995d5d7e3b1a593927ff9a95f9da4d097 Mon Sep 17 00:00:00 2001 -From: Jonas Lundberg -Date: Tue, 2 Apr 2024 20:14:16 +0200 -Subject: [PATCH] Fix test warnings - ---- - tests/conftest.py | 6 +++--- - tests/test_mock.py | 8 +++----- - 2 files changed, 6 insertions(+), 8 deletions(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 47b3fcb..02b7edf 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -2,7 +2,7 @@ - import pytest - - import respx --from respx.fixtures import session_event_loop as event_loop # noqa: F401 -+from respx.fixtures import session_event_loop # noqa: F401 - - pytest_plugins = ["pytester"] - -@@ -23,7 +23,7 @@ async def my_mock(): - - - @pytest.fixture(scope="session") --async def mocked_foo(event_loop): # noqa: F811 -+async def mocked_foo(session_event_loop): # noqa: F811 - async with respx.mock( - base_url="https://foo.api/api/", using="httpcore" - ) as respx_mock: -@@ -33,7 +33,7 @@ async def mocked_foo(event_loop): # noqa: F811 - - - @pytest.fixture(scope="session") --async def mocked_ham(event_loop): # noqa: F811 -+async def mocked_ham(session_event_loop): # noqa: F811 - async with respx.mock(base_url="https://ham.api", using="httpcore") as respx_mock: - respx_mock.get("/", name="index").respond(200) - yield respx_mock -diff --git a/tests/test_mock.py b/tests/test_mock.py -index 76631b5..12b2d23 100644 ---- a/tests/test_mock.py -+++ b/tests/test_mock.py -@@ -473,18 +473,16 @@ def test_add_remove_targets(): - assert len(HTTPCoreMocker.targets) == pre_add_count - - --async def test_proxies(): -+async def test_proxy(): - with respx.mock: - respx.get("https://foo.bar/") % dict(json={"foo": "bar"}) -- with httpx.Client(proxies={"https://": "https://1.1.1.1:1"}) as client: -+ with httpx.Client(proxy="https://1.1.1.1:1") as client: - response = client.get("https://foo.bar/") - assert response.json() == {"foo": "bar"} - - async with respx.mock: - respx.get("https://foo.bar/") % dict(json={"foo": "bar"}) -- async with httpx.AsyncClient( -- proxies={"https://": "https://1.1.1.1:1"} -- ) as client: -+ async with httpx.AsyncClient(proxy="https://1.1.1.1:1") as client: - response = await client.get("https://foo.bar/") - assert response.json() == {"foo": "bar"} - diff --git a/respx-pr278-httpx0.28.patch b/respx-pr278-httpx0.28.patch deleted file mode 100644 index b01a76a..0000000 --- a/respx-pr278-httpx0.28.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a9f81cb8dcfe5cd97f51e1a375c8406d484f31c9 Mon Sep 17 00:00:00 2001 -From: Nicholas Hansen -Date: Fri, 29 Nov 2024 14:08:23 +0000 -Subject: [PATCH] Fix compatibility with httpx 0.28.0 - ---- - respx/mocks.py | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -Index: respx-0.21.1/respx/mocks.py -=================================================================== ---- respx-0.21.1.orig/respx/mocks.py -+++ respx-0.21.1/respx/mocks.py -@@ -297,6 +297,11 @@ class HTTPCoreMocker(AbstractRequestMock - Create a `HTTPX` request from transport request arg. - """ - request = kwargs["request"] -+ method = ( -+ request.method.decode("ascii").upper() -+ if isinstance(request.method, bytes) -+ else request.method.upper() -+ ) - raw_url = ( - request.url.scheme, - request.url.host, -@@ -304,7 +309,7 @@ class HTTPCoreMocker(AbstractRequestMock - request.url.target, - ) - return httpx.Request( -- request.method, -+ method, - parse_url(raw_url), - headers=request.headers, - stream=request.stream, -Index: respx-0.21.1/tests/test_api.py -=================================================================== ---- respx-0.21.1.orig/tests/test_api.py -+++ respx-0.21.1/tests/test_api.py -@@ -214,7 +214,7 @@ async def test_content_variants(client, - {"X-Foo": "bar"}, - { - "Content-Type": "application/json", -- "Content-Length": "14", -+ "Content-Length": "13", - "X-Foo": "bar", - }, - ), -@@ -223,7 +223,7 @@ async def test_content_variants(client, - {"Content-Type": "application/json; charset=utf-8", "X-Foo": "bar"}, - { - "Content-Type": "application/json; charset=utf-8", -- "Content-Length": "14", -+ "Content-Length": "13", - "X-Foo": "bar", - }, - ), -@@ -322,19 +322,19 @@ async def test_callable_content(client): - assert request.called is True - assert async_response.status_code == 200 - assert async_response.text == "hello world." -- assert request.calls[-1][0].content == b'{"x": "."}' -+ assert request.calls[-1][0].content == b'{"x":"."}' - - respx_mock.reset() - sync_response = httpx.post("https://foo.bar/jonas/", json={"x": "!"}) - assert request.called is True - assert sync_response.status_code == 200 - assert sync_response.text == "hello jonas!" -- assert request.calls[-1][0].content == b'{"x": "!"}' -+ assert request.calls[-1][0].content == b'{"x":"!"}' - - - async def test_request_callback(client): - def callback(request, name): -- if request.url.host == "foo.bar" and request.content == b'{"foo": "bar"}': -+ if request.url.host == "foo.bar" and request.content == b'{"foo":"bar"}': - return respx.MockResponse( - 202, - headers={"X-Foo": "bar"},