File tree 2 files changed +56
-0
lines changed
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(
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,28 @@ 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
+
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