diff --git a/python-starlette.changes b/python-starlette.changes index 5fe3eff..994e00a 100644 --- a/python-starlette.changes +++ b/python-starlette.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Dec 12 16:09:18 UTC 2024 - Ben Greiner + +- Add starlette-pr2773-httpx0.28.patch gh#encode/starlette#2773 + for httpx 0.28 + ------------------------------------------------------------------- Wed Nov 20 17:28:31 UTC 2024 - Dirk Müller diff --git a/python-starlette.spec b/python-starlette.spec index caf6def..7790796 100644 --- a/python-starlette.spec +++ b/python-starlette.spec @@ -33,6 +33,8 @@ Summary: Lightweight ASGI framework/toolkit License: BSD-3-Clause URL: https://github.com/encode/starlette Source: https://github.com/encode/starlette/archive/refs/tags/%{version}.tar.gz#/starlette-%{version}.tar.gz +# PATCH-FIX-UPSTREAM starlette-pr2773-httpx0.28.patch gh#encode/starlette#2773 +Patch0: https://github.com/encode/starlette/pull/2773.patch#/starlette-pr2773-httpx0.28.patch BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module hatchling} BuildRequires: %{python_module pip} @@ -47,7 +49,7 @@ BuildRequires: %{python_module anyio >= 3.4.0} # SECTION [full] BuildRequires: %{python_module PyYAML} BuildRequires: %{python_module Jinja2} -BuildRequires: %{python_module httpx >= 0.22} +BuildRequires: %{python_module httpx >= 0.28} BuildRequires: %{python_module itsdangerous} BuildRequires: %{python_module python-multipart >= 0.0.7} # /SECTION @@ -69,10 +71,12 @@ Starlette is a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services. %prep -%autosetup -n starlette-%{version} +%autosetup -p1 -n starlette-%{version} %build +%if ! %{with test} %pyproject_wheel +%endif %install %if ! %{with test} diff --git a/starlette-pr2773-httpx0.28.patch b/starlette-pr2773-httpx0.28.patch new file mode 100644 index 0000000..0bb8a67 --- /dev/null +++ b/starlette-pr2773-httpx0.28.patch @@ -0,0 +1,68 @@ +From b781c571068f4afc0417c7dfb8df2eda0547af55 Mon Sep 17 00:00:00 2001 +From: Marcelo Trylesinski +Date: Sat, 30 Nov 2024 10:32:50 +0100 +Subject: [PATCH 1/2] Pin httpx in `full` extra + +--- + pyproject.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index a532e4628..598d4333b 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -37,7 +37,7 @@ full = [ + "jinja2", + "python-multipart>=0.0.7", + "pyyaml", +- "httpx>=0.22.0", ++ "httpx>=0.27.0,<0.29.0", + ] + + [project.urls] + +From 24de2bfc8aa99a084a9b4fcfab1e52d7a6747cd9 Mon Sep 17 00:00:00 2001 +From: Marcelo Trylesinski +Date: Sat, 30 Nov 2024 10:51:11 +0100 +Subject: [PATCH 2/2] fix test + +--- + tests/middleware/test_wsgi.py | 2 +- + tests/test_requests.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/middleware/test_wsgi.py b/tests/middleware/test_wsgi.py +index 58696bb65..e4ac66ab4 100644 +--- a/tests/middleware/test_wsgi.py ++++ b/tests/middleware/test_wsgi.py +@@ -77,7 +77,7 @@ def test_wsgi_post(test_client_factory: TestClientFactory) -> None: + client = test_client_factory(app) + response = client.post("/", json={"example": 123}) + assert response.status_code == 200 +- assert response.text == '{"example": 123}' ++ assert response.text == '{"example":123}' + + + def test_wsgi_exception(test_client_factory: TestClientFactory) -> None: +diff --git a/tests/test_requests.py b/tests/test_requests.py +index f0494e751..665dceb87 100644 +--- a/tests/test_requests.py ++++ b/tests/test_requests.py +@@ -91,7 +91,7 @@ async def app(scope: Scope, receive: Receive, send: Send) -> None: + assert response.json() == {"body": ""} + + response = client.post("/", json={"a": "123"}) +- assert response.json() == {"body": '{"a": "123"}'} ++ assert response.json() == {"body": '{"a":"123"}'} + + response = client.post("/", data="abc") # type: ignore + assert response.json() == {"body": "abc"} +@@ -112,7 +112,7 @@ async def app(scope: Scope, receive: Receive, send: Send) -> None: + assert response.json() == {"body": ""} + + response = client.post("/", json={"a": "123"}) +- assert response.json() == {"body": '{"a": "123"}'} ++ assert response.json() == {"body": '{"a":"123"}'} + + response = client.post("/", data="abc") # type: ignore + assert response.json() == {"body": "abc"}