From 686ebac114d946a8317d005799d8fbfe1e5a1307 Mon Sep 17 00:00:00 2001 From: songwenping Date: Mon, 23 Aug 2021 08:11:02 +0000 Subject: [PATCH] Fix the bug of making device_profile_group_id parameter is optional Closes-Bug: #1940509 Change-Id: I382d9691301c74c6426668de39c4f05f4b2619fd --- cyborgclient/osc/v2/accelerator_request.py | 5 +- cyborgclient/tests/unit/osc/fakes.py | 3 ++ .../unit/osc/v2/test_accelerator_request.py | 53 +++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/cyborgclient/osc/v2/accelerator_request.py b/cyborgclient/osc/v2/accelerator_request.py index 6c6febe..51e7265 100644 --- a/cyborgclient/osc/v2/accelerator_request.py +++ b/cyborgclient/osc/v2/accelerator_request.py @@ -103,8 +103,9 @@ class CreateAcceleratorRequest(command.ShowOne): metavar='', help=_("The name of device_profile for accelerator_request.")) parser.add_argument( - 'device_profile_group_id', + '--group-id', metavar='', + dest='group_id', help=_("The group id of device_profile \ for the accelerator_request.")) parser.add_argument( @@ -122,7 +123,7 @@ class CreateAcceleratorRequest(command.ShowOne): attrs = { 'device_profile_name': parsed_args.device_profile_name, - 'device_profile_group_id': parsed_args.device_profile_group_id, + 'device_profile_group_id': parsed_args.group_id, 'image_uuid': parsed_args.img_uuid, } diff --git a/cyborgclient/tests/unit/osc/fakes.py b/cyborgclient/tests/unit/osc/fakes.py index 2751cad..ad84bcf 100644 --- a/cyborgclient/tests/unit/osc/fakes.py +++ b/cyborgclient/tests/unit/osc/fakes.py @@ -56,3 +56,6 @@ class FakeResource(object): k != 'manager') info = ", ".join("%s=%s" % (k, getattr(self, k)) for k in reprkeys) return "<%s %s>" % (self.__class__.__name__, info) + + def to_dict(self): + return dict(self.__dict__) diff --git a/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py b/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py index 773343a..9e1ddff 100644 --- a/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py +++ b/cyborgclient/tests/unit/osc/v2/test_accelerator_request.py @@ -128,3 +128,56 @@ class TestAcceleratorRequestDelete(TestAcceleratorRequest): self.assertIn("No accelerator_request with UUID " + acc_fakes.accelerator_request_uuid + " exists", str(result)) + + +class TestAcceleratorRequestCreate(TestAcceleratorRequest): + + def setUp(self): + super(TestAcceleratorRequestCreate, self).setUp() + + fake_arq = acc_fakes.FakeAcceleratorResource( + None, + copy.deepcopy(acc_fakes.ACCELERATOR_REQUEST), + loaded=True) + self.mock_acc_client.create_accelerator_request.return_value = fake_arq + self.mock_acc_client.get_accelerator_request.return_value = fake_arq + + self.cmd = osc_accelerator_request.CreateAcceleratorRequest( + self.app, None + ) + + def test_accelerator_request_create(self): + arglist = ["dp_name"] + verifylist = [] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + kwargs = {'device_profile_name': 'dp_name', + 'device_profile_group_id': None, + 'image_uuid': None} + + self.mock_acc_client.create_accelerator_request.assert_called_with( + **kwargs) + + collist = ( + 'uuid', + 'state', + 'device_profile_name', + 'hostname', + 'device_rp_uuid', + 'instance_uuid', + 'attach_handle_type', + 'attach_handle_info', + ) + self.assertEqual(collist, columns) + + datalist = [ + acc_fakes.accelerator_request_uuid, + acc_fakes.accelerator_request_state, + acc_fakes.accelerator_request_device_profile_name, + acc_fakes.accelerator_request_hostname, + acc_fakes.accelerator_request_device_rp_uuid, + acc_fakes.accelerator_request_instance_uuid, + acc_fakes.accelerator_request_attach_handle_type, + acc_fakes.accelerator_request_attach_handle_info, + ] + self.assertEqual(datalist, list(data))