Merge "Change name-value pairs to name-object pairs in the dictoinary"

This commit is contained in:
Jenkins 2015-03-24 04:17:14 +00:00 committed by Gerrit Code Review
commit fe9ea1a40c
7 changed files with 36 additions and 33 deletions

View File

@ -27,19 +27,19 @@ class Capability(object):
props = self._properties
if props:
for name, value in props.items():
for p in self.definition.get_properties_def_objects():
if p.name == name:
properties.append(Property(name, value, p.schema))
break
props_def = self.definition.get_properties_def()
if name in props_def:
properties.append(Property(name, value,
props_def[name].schema))
return properties
def get_properties(self):
'''Return a dictionary of property name-value pairs.'''
return {prop.name: prop.value
'''Return a dictionary of property name-object pairs.'''
return {prop.name: prop
for prop in self.get_properties_objects()}
def get_property(self, name):
def get_property_value(self, name):
'''Return the value of a given property name.'''
props = self.get_properties()
if name in props:
return props[name]
return props[name].value

View File

@ -44,15 +44,15 @@ class CapabilityTypeDef(StatefulEntityType):
return properties
def get_properties_def(self):
'''Return a dictionary of property definition objects.'''
return {prop.name: prop.value
'''Return a dictionary of property definition name-object pairs.'''
return {prop.name: prop
for prop in self.get_properties_def_objects()}
def get_property_def(self, name):
'''Return the definition of a given property.'''
def get_property_def_value(self, name):
'''Return the definition of a given property name.'''
props_def = self.get_properties_def()
if name in props_def:
return props_def[name]
return props_def[name].value
def _get_parent_capabilities(self):
capabilities = {}

View File

@ -51,15 +51,15 @@ class StatefulEntityType(EntityType):
return properties
def get_properties_def(self):
'''Return a dictionary of property definition objects.'''
return {prop.name: prop.value
'''Return a dictionary of property definition name-object pairs.'''
return {prop.name: prop
for prop in self.get_properties_def_objects()}
def get_property_def(self, name):
def get_property_def_value(self, name):
'''Return the property definition associated with a given name.'''
props_def = self.get_properties_def()
if name in props_def:
return props_def[name]
return props_def[name].value
@property
def attributes_def(self):

View File

@ -176,10 +176,11 @@ class EntityTemplate(object):
properties = self.type_definition.get_value(self.PROPERTIES,
self.entity_tpl) or {}
for name, value in properties.items():
for p in self.type_definition.get_properties_def_objects():
if p.name == name:
prop = Property(name, value, p.schema, self.custom_def)
props.append(prop)
props_def = self.type_definition.get_properties_def()
if name in props_def:
prop = Property(name, value,
props_def[name].schema, self.custom_def)
props.append(prop)
for p in self.type_definition.get_properties_def_objects():
if p.default is not None and p.name not in properties.keys():
prop = Property(p.name, p.default, p.schema, self.custom_def)

View File

@ -261,7 +261,7 @@ class GetProperty(Function):
property = None
props = cap.get_properties()
if property_name in props:
property = props[property_name]
property = props[property_name].value
if not property:
raise KeyError(_(
"Property '{0}' not found in capability '{1}' of node"

View File

@ -93,7 +93,7 @@ class ToscaDefTest(TestCase):
property_def = None
for cap in caps:
if cap.type == type:
property_def = cap.get_property_def(property)
property_def = cap.get_property_def_value(property)
break
return property_def

View File

@ -109,22 +109,24 @@ class ToscaTemplateTest(TestCase):
self.assertEqual(property.value, 4096)
'''Test capability'''
self.assertIn('os', [cap.name for cap in tpl.capabilities])
os_properties_objects = None
os_properties = None
os_type_property = None
os_props_objs = None
os_props = None
os_type_prop = None
for capability in tpl.capabilities:
if capability.name == 'os':
os_properties_objects = \
os_props_objs = \
capability.get_properties_objects()
os_properties = capability.get_properties()
os_type_property = capability.get_property('type')
os_props = capability.get_properties()
os_type_prop = capability.get_property_value('type')
break
self.assertEqual(
['Linux'],
[p.value for p in os_properties_objects
if p.name == 'type'])
self.assertEqual('Linux', os_properties['type'])
self.assertEqual('Linux', os_type_property)
[p.value for p in os_props_objs if p.name == 'type'])
self.assertEqual(
'Linux',
os_props['type'].value if 'type' in os_props else '')
self.assertEqual('Linux', os_props['type'].value)
self.assertEqual('Linux', os_type_prop)
def test_outputs(self):
self.assertEqual(