Client should parse string to boolean for value 'is_domain'
When we use "--property" parameter, client get lists these the value is string type, but the type of the value 'is_domain' should be boolean, so we should judge it and parse it. The patch parse string to boolean for value 'is_domain'. Co-Authored-By: Lance Bragstad <lbragstad@gmail.com> Change-Id: I37c9eb854524bde3a1530bfe2e3a03810fb1a676 Task: 30039 Story: 2005246
This commit is contained in:
parent
f6ee42cd32
commit
533af9f1b2
@ -106,6 +106,14 @@ class CreateProject(command.ShowOne):
|
||||
kwargs = {}
|
||||
if parsed_args.property:
|
||||
kwargs = parsed_args.property.copy()
|
||||
if 'is_domain' in kwargs.keys():
|
||||
if kwargs['is_domain'].lower() == "true":
|
||||
kwargs['is_domain'] = True
|
||||
elif kwargs['is_domain'].lower() == "false":
|
||||
kwargs['is_domain'] = False
|
||||
elif kwargs['is_domain'].lower() == "none":
|
||||
kwargs['is_domain'] = None
|
||||
|
||||
kwargs['tags'] = list(set(parsed_args.tags))
|
||||
|
||||
try:
|
||||
|
@ -357,6 +357,126 @@ class TestProjectCreate(TestProject):
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertEqual(self.datalist, data)
|
||||
|
||||
def test_project_create_is_domain_false_property(self):
|
||||
arglist = [
|
||||
'--property', 'is_domain=false',
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'false'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
# In base command class ShowOne in cliff, abstract method take_action()
|
||||
# returns a two-part tuple with a tuple of column names and a tuple of
|
||||
# data to be shown.
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.project.name,
|
||||
'domain': None,
|
||||
'description': None,
|
||||
'enabled': True,
|
||||
'parent': None,
|
||||
'is_domain': False,
|
||||
'tags': [],
|
||||
'options': {},
|
||||
}
|
||||
self.projects_mock.create.assert_called_with(
|
||||
**kwargs
|
||||
)
|
||||
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertEqual(self.datalist, data)
|
||||
|
||||
def test_project_create_is_domain_true_property(self):
|
||||
arglist = [
|
||||
'--property', 'is_domain=true',
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'true'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
# In base command class ShowOne in cliff, abstract method take_action()
|
||||
# returns a two-part tuple with a tuple of column names and a tuple of
|
||||
# data to be shown.
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.project.name,
|
||||
'domain': None,
|
||||
'description': None,
|
||||
'enabled': True,
|
||||
'parent': None,
|
||||
'is_domain': True,
|
||||
'tags': [],
|
||||
'options': {},
|
||||
}
|
||||
self.projects_mock.create.assert_called_with(
|
||||
**kwargs
|
||||
)
|
||||
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertEqual(self.datalist, data)
|
||||
|
||||
def test_project_create_is_domain_none_property(self):
|
||||
arglist = [
|
||||
'--property', 'is_domain=none',
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'none'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
# In base command class ShowOne in cliff, abstract method take_action()
|
||||
# returns a two-part tuple with a tuple of column names and a tuple of
|
||||
# data to be shown.
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.project.name,
|
||||
'domain': None,
|
||||
'description': None,
|
||||
'enabled': True,
|
||||
'parent': None,
|
||||
'is_domain': None,
|
||||
'tags': [],
|
||||
'options': {},
|
||||
}
|
||||
self.projects_mock.create.assert_called_with(
|
||||
**kwargs
|
||||
)
|
||||
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertEqual(self.datalist, data)
|
||||
|
||||
def test_project_create_parent(self):
|
||||
self.parent = identity_fakes.FakeProject.create_one_project()
|
||||
self.project = identity_fakes.FakeProject.create_one_project(
|
||||
|
5
releasenotes/notes/bug-2005246-3fb70206bafc5444.yaml
Normal file
5
releasenotes/notes/bug-2005246-3fb70206bafc5444.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
[Story `2005246 <https://storyboard.openstack.org/#!/story/2005246>`_]
|
||||
The `is_domain` property safely handles type checking.
|
Loading…
Reference in New Issue
Block a user