File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change @@ -356,6 +356,32 @@ async def async_update(
356356
357357 return _json_to_deployment (self ._client , resp .json ())
358358
359+ def delete (self , deployment_owner : str , deployment_name : str ) -> None :
360+ """
361+ Delete an existing deployment.
362+
363+ Args:
364+ deployment_owner: The owner of the deployment.
365+ deployment_name: The name of the deployment.
366+ """
367+ self ._client ._request (
368+ "DELETE" ,
369+ f"/v1/deployments/{ deployment_owner } /{ deployment_name } " ,
370+ )
371+
372+ async def async_delete (self , deployment_owner : str , deployment_name : str ) -> None :
373+ """
374+ Delete an existing deployment asynchronously.
375+
376+ Args:
377+ deployment_owner: The owner of the deployment.
378+ deployment_name: The name of the deployment.
379+ """
380+ await self ._client ._async_request (
381+ "DELETE" ,
382+ f"/v1/deployments/{ deployment_owner } /{ deployment_name } " ,
383+ )
384+
359385 @property
360386 def predictions (self ) -> "DeploymentsPredictions" :
361387 """
Original file line number Diff line number Diff line change 178178 )
179179)
180180
181+ router .route (
182+ method = "DELETE" ,
183+ path = "/deployments/acme/image-upscaler" ,
184+ name = "deployments.delete" ,
185+ ).mock (return_value = httpx .Response (204 ))
181186
182187router .route (host = "api.replicate.com" ).pass_through ()
183188
@@ -399,3 +404,28 @@ async def test_update_deployment(async_flag):
399404 assert updated_deployment .current_release .configuration .hardware == "gpu-v100"
400405 assert updated_deployment .current_release .configuration .min_instances == 2
401406 assert updated_deployment .current_release .configuration .max_instances == 10
407+
408+
409+ @respx .mock
410+ @pytest .mark .asyncio
411+ @pytest .mark .parametrize ("async_flag" , [True , False ])
412+ async def test_delete_deployment (async_flag ):
413+ client = Client (
414+ api_token = "test-token" , transport = httpx .MockTransport (router .handler )
415+ )
416+
417+ if async_flag :
418+ await client .deployments .async_delete (
419+ deployment_owner = "acme" , deployment_name = "image-upscaler"
420+ )
421+ else :
422+ client .deployments .delete (
423+ deployment_owner = "acme" , deployment_name = "image-upscaler"
424+ )
425+
426+ assert router ["deployments.delete" ].called
427+ assert router ["deployments.delete" ].calls [0 ].request .method == "DELETE"
428+ assert (
429+ router ["deployments.delete" ].calls [0 ].request .url
430+ == "https://api.replicate.com/v1/deployments/acme/image-upscaler"
431+ )
You can’t perform that action at this time.
0 commit comments