From d913fe98276679bf92b136a0c721436c74729087 Mon Sep 17 00:00:00 2001 From: c-fang Date: Tue, 26 May 2026 14:47:43 -0700 Subject: [PATCH 1/3] Forward params on DELETE requests Match get/post/put/patch and let callers attach query-string params to DELETE. Bumps to 1.5.23. --- setup.py | 2 +- surge/api_resource.py | 8 ++++++-- tests/test_api_resource.py | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index ed2d1be..869afb4 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -VERSION = "1.5.22" +VERSION = "1.5.23" with open("requirements.txt") as f: requirements = f.read().splitlines() diff --git a/surge/api_resource.py b/surge/api_resource.py index 82e565d..33b8c18 100644 --- a/surge/api_resource.py +++ b/surge/api_resource.py @@ -77,6 +77,7 @@ def _base_request(cls, elif method == "delete": response = requests.delete(url, auth=(api_key_to_use, ""), + params=params, **header_kwargs) elif method == "patch": @@ -141,6 +142,9 @@ def patch(cls, api_endpoint, params=None, api_key=None): api_key=api_key) @classmethod - def delete_request(cls, api_endpoint, api_key=None): + def delete_request(cls, api_endpoint, params=None, api_key=None): method = "delete" - return cls._base_request(method, api_endpoint, api_key=api_key) + return cls._base_request(method, + api_endpoint, + params=params, + api_key=api_key) diff --git a/tests/test_api_resource.py b/tests/test_api_resource.py index 1e65e9f..319ba0e 100644 --- a/tests/test_api_resource.py +++ b/tests/test_api_resource.py @@ -71,3 +71,19 @@ def test_get_passed_in_file(): def test_print_attrs(): a1 = APIResource(id="ABC1234").print_attrs() assert a1 == 'id="ABC1234"' + + +def test_delete_request_forwards_params(): + with mock.patch.object(requests, "delete") as mock_request: + mock_request.return_value = mock.MagicMock() + APIResource._base_request( + "delete", + surge.api_resource.PROJECTS_ENDPOINT, + params={"foo": "bar"}, + api_key="passed_api_key", + ) + mock_request.assert_called_once_with( + "https://app.surgehq.ai/api/projects", + auth=("passed_api_key", ""), + params={"foo": "bar"}, + ) From 7761015c55838f3ae0e61e8b86dcad0792d40463 Mon Sep 17 00:00:00 2001 From: c-fang Date: Tue, 26 May 2026 15:04:35 -0700 Subject: [PATCH 2/3] Place params after api_key to preserve positional back-compat --- surge/api_resource.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/surge/api_resource.py b/surge/api_resource.py index 33b8c18..6e11354 100644 --- a/surge/api_resource.py +++ b/surge/api_resource.py @@ -142,7 +142,9 @@ def patch(cls, api_endpoint, params=None, api_key=None): api_key=api_key) @classmethod - def delete_request(cls, api_endpoint, params=None, api_key=None): + def delete_request(cls, api_endpoint, api_key=None, params=None): + # api_key precedes params to preserve positional backward + # compatibility with callers that predate the params argument. method = "delete" return cls._base_request(method, api_endpoint, From 6f2f3aa83d8e77373c166ee5df09ef898407f386 Mon Sep 17 00:00:00 2001 From: c-fang Date: Tue, 26 May 2026 15:12:13 -0700 Subject: [PATCH 3/3] Drop redundant comment on delete_request signature --- surge/api_resource.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/surge/api_resource.py b/surge/api_resource.py index 6e11354..a31e8da 100644 --- a/surge/api_resource.py +++ b/surge/api_resource.py @@ -143,8 +143,6 @@ def patch(cls, api_endpoint, params=None, api_key=None): @classmethod def delete_request(cls, api_endpoint, api_key=None, params=None): - # api_key precedes params to preserve positional backward - # compatibility with callers that predate the params argument. method = "delete" return cls._base_request(method, api_endpoint,