From 9d5bdc5f170f7469f73cf6a0cea3000a2f2abea9 Mon Sep 17 00:00:00 2001 From: ericxiett Date: Fri, 23 Jul 2021 11:05:56 +0000 Subject: [PATCH] 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 --- cyborgclient/osc/v2/accelerator_request.py | 3 +++ .../unit/osc/v2/test_accelerator_request.py | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/cyborgclient/osc/v2/accelerator_request.py b/cyborgclient/osc/v2/accelerator_request.py index b41f905..6c6febe 100644 --- a/cyborgclient/osc/v2/accelerator_request.py +++ b/cyborgclient/osc/v2/accelerator_request.py @@ -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") diff --git a/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py b/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py index c45b610..773343a 100644 --- a/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py +++ b/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py @@ -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))