2020from dstack ._internal .core .errors import BackendError , NoCapacityError
2121
2222
23+ def _assert_terminate_call (action_mock : MagicMock ):
24+ action_mock .assert_called_once ()
25+ kwargs = action_mock .call_args .kwargs
26+ assert kwargs ["id_list" ] == ["instance-id" ]
27+ assert kwargs ["action" ] == "delete"
28+ if "delete_permanently" in kwargs :
29+ assert kwargs ["delete_permanently" ] is True
30+
31+
2332class TestCreateSSHKey :
2433 def test_creates_ssh_key (self ):
2534 client = MagicMock ()
@@ -291,10 +300,7 @@ def test_terminate_instance_without_backend_data(self):
291300
292301 compute .terminate_instance ("instance-id" , "FIN-01" , None )
293302
294- compute .client .instances .action .assert_called_once_with (
295- id_list = ["instance-id" ],
296- action = "delete" ,
297- )
303+ _assert_terminate_call (compute .client .instances .action )
298304 compute .client .startup_scripts .delete_by_id .assert_not_called ()
299305 compute .client .ssh_keys .delete_by_id .assert_not_called ()
300306
@@ -308,10 +314,7 @@ def test_terminate_instance_deletes_startup_script(self):
308314
309315 compute .terminate_instance ("instance-id" , "FIN-01" , backend_data )
310316
311- compute .client .instances .action .assert_called_once_with (
312- id_list = ["instance-id" ],
313- action = "delete" ,
314- )
317+ _assert_terminate_call (compute .client .instances .action )
315318 compute .client .startup_scripts .delete_by_id .assert_called_once_with ("script-id" )
316319 assert compute .client .ssh_keys .delete_by_id .call_count == 2
317320
@@ -343,10 +346,7 @@ def test_terminate_instance_ignores_missing_startup_script(self):
343346
344347 compute .terminate_instance ("instance-id" , "FIN-01" , backend_data )
345348
346- compute .client .instances .action .assert_called_once_with (
347- id_list = ["instance-id" ],
348- action = "delete" ,
349- )
349+ _assert_terminate_call (compute .client .instances .action )
350350 compute .client .ssh_keys .delete_by_id .assert_called_once_with ("ssh-key-id-1" )
351351
352352 def test_terminate_instance_ignores_missing_startup_script_invalid_script_id (self ):
@@ -363,10 +363,7 @@ def test_terminate_instance_ignores_missing_startup_script_invalid_script_id(sel
363363
364364 compute .terminate_instance ("instance-id" , "FIN-01" , backend_data )
365365
366- compute .client .instances .action .assert_called_once_with (
367- id_list = ["instance-id" ],
368- action = "delete" ,
369- )
366+ _assert_terminate_call (compute .client .instances .action )
370367 compute .client .ssh_keys .delete_by_id .assert_called_once_with ("ssh-key-id-1" )
371368
372369 def test_terminate_instance_retries_on_script_delete_error (self ):
@@ -399,10 +396,7 @@ def test_terminate_instance_ignores_missing_ssh_key(self):
399396
400397 compute .terminate_instance ("instance-id" , "FIN-01" , backend_data )
401398
402- compute .client .instances .action .assert_called_once_with (
403- id_list = ["instance-id" ],
404- action = "delete" ,
405- )
399+ _assert_terminate_call (compute .client .instances .action )
406400 compute .client .startup_scripts .delete_by_id .assert_called_once_with ("script-id" )
407401 compute .client .ssh_keys .delete_by_id .assert_called_once_with ("ssh-key-id-1" )
408402
0 commit comments