From 372f4a1bfcba59a1116094d18e71f4d1301b7650 Mon Sep 17 00:00:00 2001 From: Zak Bearman Date: Mon, 31 Aug 2026 15:14:32 +1200 Subject: [PATCH] Fix Seerr transport payload forwarding --- backend/app/clients/base.py | 2 +- backend/tests/test_backend_quality.py | 32 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/backend/app/clients/base.py b/backend/app/clients/base.py index dac0a75..6a6f24c 100644 --- a/backend/app/clients/base.py +++ b/backend/app/clients/base.py @@ -113,7 +113,7 @@ class ApiClient: url, headers=self.headers(), params=params, - json=payload, + payload=payload, ) response.raise_for_status() duration_ms = round((time.perf_counter() - started_at) * 1000, 2) diff --git a/backend/tests/test_backend_quality.py b/backend/tests/test_backend_quality.py index 2e819f7..fd75063 100644 --- a/backend/tests/test_backend_quality.py +++ b/backend/tests/test_backend_quality.py @@ -459,6 +459,38 @@ class RequestCreationFlowTests(unittest.IsolatedAsyncioTestCase): self.assertIn("_csrf=secret-value", write_request.headers.get("Cookie", "")) self.assertIn("XSRF-TOKEN=csrf%2Etoken", write_request.headers.get("Cookie", "")) + async def test_base_request_passes_payload_to_transport_hook(self) -> None: + captured: dict = {} + + async def send_request( + _client: httpx.AsyncClient, + method: str, + url: str, + *, + headers: dict, + params: dict | None, + payload: dict | None, + ) -> httpx.Response: + captured.update( + method=method, + url=url, + headers=headers, + params=params, + payload=payload, + ) + return httpx.Response(200, request=httpx.Request(method, url), json={"ok": True}) + + client = requests_router.JellyseerrClient("https://seerr.test", "api-key") + with patch.object(client, "_send_request", new=send_request): + result = await client._request( + "POST", + "/api/v1/request", + payload={"mediaType": "movie", "mediaId": 209112}, + ) + + self.assertEqual(result, {"ok": True}) + self.assertEqual(captured["payload"], {"mediaType": "movie", "mediaId": 209112}) + async def test_request_destination_only_offers_live_sonarr_profiles(self) -> None: runtime = SimpleNamespace( sonarr_base_url="http://sonarr.test",