Hide the traceback when deleting a non-existent ARQ

This patch catches the 'ResourceNotFound' exception and adds
 some unittests.

Closes-Bug: #1937251
Change-Id: I1e07528e9b551ff192ee707d1988a8c07bf349a0
This commit is contained in:
ericxiett 2021-07-23 11:05:56 +00:00
parent a10bf6348c
commit 9d5bdc5f17
2 changed files with 29 additions and 0 deletions

View File

@ -158,6 +158,9 @@ class DeleteAcceleratorRequest(command.Command):
try:
acc_client.delete_accelerator_request(uuid, False)
print(_('Deleted accelerator_request %s') % uuid)
except sdk_exc.ResourceNotFound:
failures.append(_("No accelerator_request with UUID %s "
"exists.") % uuid)
except exc.ClientException as e:
failures.append(_("Failed to delete accelerator_request\
%(accelerator_request)s: %(error)s")

View File

@ -12,6 +12,9 @@
#
import copy
from openstack import exceptions as sdk_exc
from cyborgclient import exceptions as exc
from cyborgclient.osc.v2 import accelerator_request as osc_accelerator_request
from cyborgclient.tests.unit.osc.v2 import fakes as acc_fakes
@ -102,3 +105,26 @@ class TestAcceleratorRequestList(TestAcceleratorRequest):
acc_fakes.accelerator_request_attach_handle_info,
), ]
self.assertEqual(datalist, list(data))
class TestAcceleratorRequestDelete(TestAcceleratorRequest):
def setUp(self):
super(TestAcceleratorRequestDelete, self).setUp()
self.cmd = osc_accelerator_request.DeleteAcceleratorRequest(
self.app, None
)
def test_accelerator_request_delete_non_existed(self):
self.mock_acc_client.delete_accelerator_request.side_effect = \
sdk_exc.ResourceNotFound
arg_list = [acc_fakes.accelerator_request_uuid]
verify_list = []
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
result = self.assertRaises(exc.ClientException,
self.cmd.take_action,
parsed_args)
self.assertIn("No accelerator_request with UUID " +
acc_fakes.accelerator_request_uuid + " exists",
str(result))