Implement create Plan for the OpenStack client

Change-Id: If6e0ad80868f6c1c8af17b1445f7e231a21a754f
This commit is contained in:
Dougal Matthews 2015-04-30 12:10:09 +01:00
parent ee470b9dd2
commit 531be10588
3 changed files with 66 additions and 12 deletions

View File

@ -24,11 +24,30 @@ class CreateManagementPlan(show.ShowOne):
def get_parser(self, prog_name):
parser = super(CreateManagementPlan, self).get_parser(prog_name)
parser.add_argument(
'name',
help="Name of the plan being created."
)
parser.add_argument(
'-d', '--description',
help='A textual description of the plan.')
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args)
client = self.app.client_manager.management
plan = client.plans.create(
name=parsed_args.name,
description=parsed_args.description
)
return self.dict2columns(plan.to_dict())
class DeleteManagementPlan(command.Command):
"""Delete a Management Plan."""

View File

@ -14,20 +14,26 @@ import mock
from openstackclient.tests import utils
def _create_mock(**kwargs):
mock_plan = mock.Mock()
mock_plan.configure_mock(**kwargs)
mock_plan.to_dict.return_value = kwargs
return mock_plan
mock_roles = [
mock.Mock(uuid="UUID1", version=1, description="Mock Role 1"),
mock.Mock(uuid="UUID2", version=2, description="Mock Role 2"),
_create_mock(uuid="UUID1", name="Role 1 Name", version=1,
description="Mock Role 1"),
_create_mock(uuid="UUID2", name="Role 2 Name", version=2,
description="Mock Role 2"),
]
mock_roles[0].configure_mock(name="Role 1 Name")
mock_roles[1].configure_mock(name="Role 2 Name")
mock_plans = [
mock.Mock(uuid="UUID1", description="Plan 1",
roles=mock_roles),
mock.Mock(uuid="UUID2", description="Plan 2", roles=[]),
_create_mock(uuid="UUID1", name="Plan 1 Name", description="Plan 1",
roles=mock_roles),
_create_mock(uuid="UUID2", name="Plan 2 Name", description="Plan 2",
roles=[])
]
mock_plans[0].configure_mock(name="Plan 1 Name")
mock_plans[1].configure_mock(name="Plan 2 Name")
class TestManagement(utils.TestCommand):

View File

@ -30,12 +30,41 @@ class TestCreateManagementPlan(TestPlans):
self.cmd = plan.CreateManagementPlan(self.app, None)
def test_create_plan(self):
arglist = []
verifylist = []
arglist = ["Plan 2 Name", '-d', 'Plan 2']
verifylist = [
('name', "Plan 2 Name"),
('description', "Plan 2"),
]
self.management_mock.plans.create.return_value = fakes.mock_plans[1]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
result = self.cmd.take_action(parsed_args)
self.assertEqual([
('description', 'name', 'roles', 'uuid'),
('Plan 2', 'Plan 2 Name', [], 'UUID2')
], list(result)
)
def test_create_plan_no_description(self):
arglist = ["Plan1Name", ]
verifylist = [
('name', "Plan1Name"),
('description', None),
]
self.management_mock.plans.create.return_value = fakes.mock_plans[0]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.assertEqual([
('description', 'name', 'roles', 'uuid'),
('Plan 1', 'Plan 1 Name', fakes.mock_roles, 'UUID1')
], list(result))
class TestDeleteManagementPlan(TestPlans):