@@ -158,6 +158,40 @@ def _fake_parse_response_model(data, **kwargs):
158158 assert captured ["parse_kwargs" ]["operation_name" ] == "read resource"
159159
160160
161+ def test_get_model_request_delegates_to_raw_data_helper ():
162+ captured = {}
163+
164+ def _fake_get_model_response_data (** kwargs ):
165+ captured ["kwargs" ] = kwargs
166+ return {"id" : "resource-2" }
167+
168+ def _fake_parse_response_model (data , ** kwargs ):
169+ captured ["parse_data" ] = data
170+ captured ["parse_kwargs" ] = kwargs
171+ return {"parsed" : True }
172+
173+ original_get = model_request_utils .get_model_response_data
174+ original_parse = model_request_utils .parse_response_model
175+ model_request_utils .get_model_response_data = _fake_get_model_response_data
176+ model_request_utils .parse_response_model = _fake_parse_response_model
177+ try :
178+ result = model_request_utils .get_model_request (
179+ client = object (),
180+ route_path = "/resource/2" ,
181+ params = {"page" : 1 },
182+ model = object ,
183+ operation_name = "read resource" ,
184+ )
185+ finally :
186+ model_request_utils .get_model_response_data = original_get
187+ model_request_utils .parse_response_model = original_parse
188+
189+ assert result == {"parsed" : True }
190+ assert captured ["kwargs" ]["route_path" ] == "/resource/2"
191+ assert captured ["kwargs" ]["params" ] == {"page" : 1 }
192+ assert captured ["parse_data" ] == {"id" : "resource-2" }
193+
194+
161195def test_get_model_response_data_gets_payload_without_parsing ():
162196 captured = {}
163197
@@ -188,6 +222,30 @@ def _build_url(path: str) -> str:
188222 assert captured ["follow_redirects" ] is True
189223
190224
225+ def test_delete_model_response_data_deletes_resource_and_returns_raw_data ():
226+ captured = {}
227+
228+ class _SyncTransport :
229+ def delete (self , url ):
230+ captured ["url" ] = url
231+ return SimpleNamespace (data = {"success" : True })
232+
233+ class _Client :
234+ transport = _SyncTransport ()
235+
236+ @staticmethod
237+ def _build_url (path : str ) -> str :
238+ return f"https://api.example.test{ path } "
239+
240+ result = model_request_utils .delete_model_response_data (
241+ client = _Client (),
242+ route_path = "/resource/3" ,
243+ )
244+
245+ assert result == {"success" : True }
246+ assert captured ["url" ] == "https://api.example.test/resource/3"
247+
248+
191249def test_delete_model_request_deletes_resource_and_parses_response ():
192250 captured = {}
193251
@@ -226,6 +284,38 @@ def _fake_parse_response_model(data, **kwargs):
226284 assert captured ["parse_kwargs" ]["operation_name" ] == "delete resource"
227285
228286
287+ def test_delete_model_request_delegates_to_raw_data_helper ():
288+ captured = {}
289+
290+ def _fake_delete_model_response_data (** kwargs ):
291+ captured ["kwargs" ] = kwargs
292+ return {"success" : True }
293+
294+ def _fake_parse_response_model (data , ** kwargs ):
295+ captured ["parse_data" ] = data
296+ captured ["parse_kwargs" ] = kwargs
297+ return {"parsed" : True }
298+
299+ original_delete = model_request_utils .delete_model_response_data
300+ original_parse = model_request_utils .parse_response_model
301+ model_request_utils .delete_model_response_data = _fake_delete_model_response_data
302+ model_request_utils .parse_response_model = _fake_parse_response_model
303+ try :
304+ result = model_request_utils .delete_model_request (
305+ client = object (),
306+ route_path = "/resource/3" ,
307+ model = object ,
308+ operation_name = "delete resource" ,
309+ )
310+ finally :
311+ model_request_utils .delete_model_response_data = original_delete
312+ model_request_utils .parse_response_model = original_parse
313+
314+ assert result == {"parsed" : True }
315+ assert captured ["kwargs" ]["route_path" ] == "/resource/3"
316+ assert captured ["parse_data" ] == {"success" : True }
317+
318+
229319def test_put_model_response_data_forwards_payload_and_returns_raw_data ():
230320 captured = {}
231321
@@ -415,6 +505,44 @@ def _fake_parse_response_model(data, **kwargs):
415505 assert captured ["parse_kwargs" ]["operation_name" ] == "read resource"
416506
417507
508+ def test_get_model_request_async_delegates_to_raw_data_helper ():
509+ captured = {}
510+
511+ async def _fake_get_model_response_data_async (** kwargs ):
512+ captured ["kwargs" ] = kwargs
513+ return {"id" : "resource-5" }
514+
515+ def _fake_parse_response_model (data , ** kwargs ):
516+ captured ["parse_data" ] = data
517+ captured ["parse_kwargs" ] = kwargs
518+ return {"parsed" : True }
519+
520+ original_get = model_request_utils .get_model_response_data_async
521+ original_parse = model_request_utils .parse_response_model
522+ model_request_utils .get_model_response_data_async = (
523+ _fake_get_model_response_data_async
524+ )
525+ model_request_utils .parse_response_model = _fake_parse_response_model
526+ try :
527+ result = asyncio .run (
528+ model_request_utils .get_model_request_async (
529+ client = object (),
530+ route_path = "/resource/5" ,
531+ params = {"page" : 2 },
532+ model = object ,
533+ operation_name = "read resource" ,
534+ )
535+ )
536+ finally :
537+ model_request_utils .get_model_response_data_async = original_get
538+ model_request_utils .parse_response_model = original_parse
539+
540+ assert result == {"parsed" : True }
541+ assert captured ["kwargs" ]["route_path" ] == "/resource/5"
542+ assert captured ["kwargs" ]["params" ] == {"page" : 2 }
543+ assert captured ["parse_data" ] == {"id" : "resource-5" }
544+
545+
418546def test_get_model_response_data_async_gets_payload_without_parsing ():
419547 captured = {}
420548
@@ -447,6 +575,32 @@ def _build_url(path: str) -> str:
447575 assert captured ["follow_redirects" ] is True
448576
449577
578+ def test_delete_model_response_data_async_deletes_resource_and_returns_raw_data ():
579+ captured = {}
580+
581+ class _AsyncTransport :
582+ async def delete (self , url ):
583+ captured ["url" ] = url
584+ return SimpleNamespace (data = {"success" : True })
585+
586+ class _Client :
587+ transport = _AsyncTransport ()
588+
589+ @staticmethod
590+ def _build_url (path : str ) -> str :
591+ return f"https://api.example.test{ path } "
592+
593+ result = asyncio .run (
594+ model_request_utils .delete_model_response_data_async (
595+ client = _Client (),
596+ route_path = "/resource/6" ,
597+ )
598+ )
599+
600+ assert result == {"success" : True }
601+ assert captured ["url" ] == "https://api.example.test/resource/6"
602+
603+
450604def test_delete_model_request_async_deletes_resource_and_parses_response ():
451605 captured = {}
452606
@@ -487,6 +641,42 @@ def _fake_parse_response_model(data, **kwargs):
487641 assert captured ["parse_kwargs" ]["operation_name" ] == "delete resource"
488642
489643
644+ def test_delete_model_request_async_delegates_to_raw_data_helper ():
645+ captured = {}
646+
647+ async def _fake_delete_model_response_data_async (** kwargs ):
648+ captured ["kwargs" ] = kwargs
649+ return {"success" : True }
650+
651+ def _fake_parse_response_model (data , ** kwargs ):
652+ captured ["parse_data" ] = data
653+ captured ["parse_kwargs" ] = kwargs
654+ return {"parsed" : True }
655+
656+ original_delete = model_request_utils .delete_model_response_data_async
657+ original_parse = model_request_utils .parse_response_model
658+ model_request_utils .delete_model_response_data_async = (
659+ _fake_delete_model_response_data_async
660+ )
661+ model_request_utils .parse_response_model = _fake_parse_response_model
662+ try :
663+ result = asyncio .run (
664+ model_request_utils .delete_model_request_async (
665+ client = object (),
666+ route_path = "/resource/6" ,
667+ model = object ,
668+ operation_name = "delete resource" ,
669+ )
670+ )
671+ finally :
672+ model_request_utils .delete_model_response_data_async = original_delete
673+ model_request_utils .parse_response_model = original_parse
674+
675+ assert result == {"parsed" : True }
676+ assert captured ["kwargs" ]["route_path" ] == "/resource/6"
677+ assert captured ["parse_data" ] == {"success" : True }
678+
679+
490680def test_put_model_response_data_async_forwards_payload_and_returns_raw_data ():
491681 captured = {}
492682
0 commit comments