@@ -4449,6 +4449,55 @@ def test_server_delete_multi_servers(self):
44494449 )
44504450 self .assertIsNone (result )
44514451
4452+ def test_server_delete_multi_servers_with_exceptions (self ):
4453+ servers = compute_fakes .create_servers (count = 2 )
4454+ self .compute_client .find_server .side_effect = [
4455+ servers [0 ],
4456+ sdk_exceptions .ResourceNotFound (),
4457+ servers [1 ],
4458+ ]
4459+
4460+ arglist = [servers [0 ].id , 'unexist_server' , servers [1 ].id ]
4461+
4462+ verifylist = [
4463+ ('force' , False ),
4464+ ('all_projects' , False ),
4465+ ('wait' , False ),
4466+ (
4467+ 'server' ,
4468+ [servers [0 ].id , 'unexist_server' , servers [1 ].id ],
4469+ ),
4470+ ]
4471+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4472+
4473+ exc = self .assertRaises (
4474+ exceptions .CommandError ,
4475+ self .cmd .take_action ,
4476+ parsed_args ,
4477+ )
4478+ self .assertEqual ('1 of 3 servers failed to delete.' , str (exc ))
4479+
4480+ self .compute_client .find_server .assert_has_calls (
4481+ [
4482+ mock .call (
4483+ servers [0 ].id , ignore_missing = False , all_projects = False
4484+ ),
4485+ mock .call (
4486+ 'unexist_server' , ignore_missing = False , all_projects = False
4487+ ),
4488+ mock .call (
4489+ servers [1 ].id , ignore_missing = False , all_projects = False
4490+ ),
4491+ ]
4492+ )
4493+
4494+ self .compute_client .delete_server .assert_has_calls (
4495+ [
4496+ mock .call (servers [0 ], force = False ),
4497+ mock .call (servers [1 ], force = False ),
4498+ ]
4499+ )
4500+
44524501 def test_server_delete_with_all_projects (self ):
44534502 arglist = [
44544503 self .server .id ,
0 commit comments