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 props = self._properties
if props: if props:
for name, value in props.items(): for name, value in props.items():
for p in self.definition.get_properties_def_objects(): props_def = self.definition.get_properties_def()
if p.name == name: if name in props_def:
properties.append(Property(name, value, p.schema)) properties.append(Property(name, value,
break props_def[name].schema))
return properties return properties
def get_properties(self): def get_properties(self):
'''Return a dictionary of property name-value pairs.''' '''Return a dictionary of property name-object pairs.'''
return {prop.name: prop.value return {prop.name: prop
for prop in self.get_properties_objects()} 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.''' '''Return the value of a given property name.'''
props = self.get_properties() props = self.get_properties()
if name in props: if name in props:
return props[name] return props[name].value

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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