File tree 2 files changed +52
-0
lines changed
2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -356,6 +356,32 @@ async def async_update(
356
356
357
357
return _json_to_deployment (self ._client , resp .json ())
358
358
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
+
359
385
@property
360
386
def predictions (self ) -> "DeploymentsPredictions" :
361
387
"""
Original file line number Diff line number Diff line change 178
178
)
179
179
)
180
180
181
+ router .route (
182
+ method = "DELETE" ,
183
+ path = "/deployments/acme/image-upscaler" ,
184
+ name = "deployments.delete" ,
185
+ ).mock (return_value = httpx .Response (204 ))
181
186
182
187
router .route (host = "api.replicate.com" ).pass_through ()
183
188
@@ -399,3 +404,24 @@ async def test_update_deployment(async_flag):
399
404
assert updated_deployment .current_release .configuration .hardware == "gpu-v100"
400
405
assert updated_deployment .current_release .configuration .min_instances == 2
401
406
assert updated_deployment .current_release .configuration .max_instances == 10
407
+
408
+ @respx .mock
409
+ @pytest .mark .asyncio
410
+ @pytest .mark .parametrize ("async_flag" , [True , False ])
411
+ async def test_delete_deployment (async_flag ):
412
+ client = Client (
413
+ api_token = "test-token" , transport = httpx .MockTransport (router .handler )
414
+ )
415
+
416
+ if async_flag :
417
+ await client .deployments .async_delete (
418
+ deployment_owner = "acme" , deployment_name = "image-upscaler"
419
+ )
420
+ else :
421
+ client .deployments .delete (
422
+ deployment_owner = "acme" , deployment_name = "image-upscaler"
423
+ )
424
+
425
+ assert router ["deployments.delete" ].called
426
+ assert router ["deployments.delete" ].calls [0 ].request .method == "DELETE"
427
+ assert router ["deployments.delete" ].calls [0 ].request .url == "https://api.replicate.com/v1/deployments/acme/image-upscaler"
You can’t perform that action at this time.
0 commit comments