Ejemplo n.º 1
0
 def test_update_get_input_function_reference(self):
     template = init_template()
     value = {'get_input': 'inputName'}
     res = _is_function(value)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template)
     self.assertEqual(res.value_from_item, template.inputs.get('inputName'))
Ejemplo n.º 2
0
 def test_update_prefix(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     prop_sec = {
         'properties': {
             'propertyName': {
                 'get_input': 'inputName'
             }
         },
         'capabilities': {
             'capabilityName': {
                 'properties': {
                     'capabilityProperty': {
                         'get_property': ['nodeName', 'propertyName']
                     }
                 }
             }
         }
     }
     node._parse_pre_defined_content(prop_sec)
     node._update_prefix('PREFIX_')
     self.assertEqual('PREFIX_nodeName', node.name)
     self.assertEqual('PREFIX_nodeName',
                      node.id.value.function.extra_data[0])
     self.assertEqual(
         'PREFIX_inputName',
         node.properties.get('propertyName').value.function.target_property)
     self.assertEqual(
         'PREFIX_nodeName',
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.extra_data[0])
Ejemplo n.º 3
0
 def test_instantiate_with_type(self):
     template = init_template()
     node = Node(template, 'myNode',
                 template.db.NODE_TYPES.get('nodeTypeName'))
     self.assertEqual(1, len(node.attributes))
     node._instatiateWithType(
         template.db.NODE_TYPES.get('substituteNodeType'))
     self.assertEqual(0, len(node.attributes))
Ejemplo n.º 4
0
 def test_parse_pre_defined_content(self):
     template = init_template()
     node = Node(template, 'myNode',
                 template.db.NODE_TYPES.get('nodeTypeName'))
     self.assertIsNone(node.properties.get('propertyName').value)
     prop_sec = {'properties': {'propertyName': 'template_value'}}
     node._parse_pre_defined_content(prop_sec)
     self.assertEqual('template_value',
                      node.properties.get('propertyName').value.value)
Ejemplo n.º 5
0
 def test_update_get_attribute_function_other_node_id_attribute(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'get_attribute': ['nodeName', 'id']}
     res = _is_function(value)
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template)
     self.assertEqual(res.value_from_node, node)
     self.assertEqual(res.value_from_item, node.id)
Ejemplo n.º 6
0
 def test_calculate_property_function_result(self):
     template = init_template()
     value = {'get_property': ['node2', 'dummyRequirement', 'propertyName']}
     func = _is_function(value)
     res = func._calculate_function_result()
     self.assertEqual(res, (value, 2))
     func._update_function_reference(template)
     res = func._calculate_function_result()
     expected = ({'get_property': ['nodeName', 'propertyName']}, 2)
     self.assertEqual(res, expected)
Ejemplo n.º 7
0
 def test_update_get_node_name_property_value(self):
     template = init_template()
     node = Node(template, 'myNode',
                 template.db.NODE_TYPES.get('nodeTypeName'))
     prop_sec = {'properties': {'propertyName': '__GET_NODE_NAME__'}}
     node._parse_pre_defined_content(prop_sec)
     self.assertEqual('__GET_NODE_NAME__',
                      node.properties.get('propertyName').value.value)
     node._update_get_node_name()
     self.assertEqual('myNode',
                      node.properties.get('propertyName').value.value)
Ejemplo n.º 8
0
 def test_get_id_attribute_function_representation(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'get_attribute': ['SELF', 'id']}
     func = _is_function(value)
     func._update_function_reference(template, node)
     self.assertIsNotNone(func.value_from_node)
     res = func._get_function_representation()
     self.assertEqual(res, {'get_attribute': ['nodeName', 'id']})
     res = func._get_function_representation('heat')
     self.assertEqual(res, {'get_id': 'nodeName'})
Ejemplo n.º 9
0
 def test_update_concat_function_reference(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'concat': [{'get_attribute': ['nodeName', 'id']}, 'second']}
     res = _is_function(value)
     self.assertIsNone(res.extra_data[0].function.value_from_node)
     res._update_function_reference(template)
     self.assertIsNotNone(res.extra_data[0].function.value_from_node)
     self.assertIsNotNone(res.extra_data[0].function.value_from_item)
     self.assertEqual(res.extra_data[0].function.value_from_node, node)
     self.assertEqual(res.extra_data[0].function.value_from_item, node.id)
Ejemplo n.º 10
0
 def test_verify_functions(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     prop_sec = {
         'properties': {
             'propertyName': {
                 'get_input': 'inputName'
             }
         },
         'capabilities': {
             'capabilityName': {
                 'properties': {
                     'capabilityProperty': {
                         'get_property': ['nodeName', 'propertyName']
                     }
                 }
             }
         }
     }
     node._parse_pre_defined_content(prop_sec)
     self.assertIsNone(
         node.properties.get('propertyName').value.function.value_from_item)
     self.assertIsNone(
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_item)
     self.assertIsNone(
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_node)
     node._verify_functions()
     self.assertIsNotNone(
         node.properties.get('propertyName').value.function.value_from_item)
     self.assertIsNotNone(
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_item)
     self.assertIsNotNone(
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_node)
     self.assertEqual(
         template.inputs.get('inputName'),
         node.properties.get('propertyName').value.function.value_from_item)
     self.assertEqual(
         node.properties.get('propertyName'),
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_item)
     self.assertEqual(
         node,
         node._get_capability_property(
             'capabilityName',
             'capabilityProperty').value.function.value_from_node)
Ejemplo n.º 11
0
 def test_update_get_property_function_reference_self_property(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'get_property': ['SELF', 'propertyName']}
     res = _is_function(value)
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template, node)
     self.assertEqual(res.value_from_node, node)
     self.assertEqual(res.value_from_item,
                      node.properties.get('propertyName'))
Ejemplo n.º 12
0
 def test_calculate_concat_function_result(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'concat': [{'get_attribute': ['SELF', 'id']}, {'concat': [{'get_property': ['SELF', 'propertyName']}, 'third', '4']}]}
     func = _is_function(value)
     res = func._calculate_function_result()
     self.assertEqual(res, (value, 2))
     func._update_function_reference(template, node)
     res = func._calculate_function_result()
     expected = {'concat': [{'get_attribute': ['nodeName', 'id']}, {'concat': [{'get_property': ['nodeName', 'propertyName']}, 'third', '4']}]}
     self.assertEqual(res, (expected, 2))
Ejemplo n.º 13
0
 def test_update_get_input_function_reference_auto_generate_input(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {'get_input': 'propertyName'}
     res = _is_function(value)
     self.assertIsNone(res.value_from_item)
     self.assertIsNone(template.inputs.get('nodeName_propertyName'))
     self.assertEqual(res.target_property, 'propertyName')
     res._update_function_reference(template, node,
                                    node.properties.get('propertyName'))
     self.assertIsNotNone(res.value_from_item)
     self.assertEqual(res.value_from_item,
                      template.inputs.get('nodeName_propertyName'))
Ejemplo n.º 14
0
 def test_update_get_attribute_function_requirement_target_attribute(self):
     template = init_template()
     node = template.node_dict.get('nodeName')
     value = {
         'get_attribute': ['node2', 'dummyRequirement', 'attributeName']
     }
     res = _is_function(value)
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template)
     self.assertEqual(res.value_from_node, node)
     self.assertEqual(res.value_from_item,
                      node.attributes.get('attributeName'))
 def test_update_mapping_template_pointer(self):
     template = init_template()
     sub_sec = {
         'node_type': 'substituteNodeType',
         'capabilities': {
             'substituteCapability': ['nodeName', 'capabilityName']
         }
     }
     sub_type = template.db.NODE_TYPES.get('substituteNodeType')
     self.assertIsNone(sub_type.mapping_template)
     template._parse_substitution(template.db, sub_sec)
     self.assertIsNotNone(sub_type.mapping_template)
     self.assertEqual(sub_type.mapping_template, template)
Ejemplo n.º 16
0
 def test_get_self_property_function_representation(self):
     value = {'get_property': ['SELF', 'propertyName']}
     func = _is_function(value)
     self.assertIsNotNone(func.extra_data)
     self.assertIsNone(func.value_from_node)
     res = func._get_function_representation()
     self.assertEqual(res, value)
     template = init_template()
     node = template.node_dict.get('nodeName')
     func._update_function_reference(template, node)
     self.assertIsNotNone(func.value_from_node)
     res = func._get_function_representation()
     self.assertEqual(res, {'get_property': ['nodeName', 'propertyName']})
Ejemplo n.º 17
0
 def test_update_get_property_function_reference_requirement_target_property(
         self):
     template = init_template()
     value = {'get_property': ['node2', 'dummyRequirement', 'propertyName']}
     res = _is_function(value)
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template)
     self.assertIsNotNone(res.value_from_node)
     self.assertIsNotNone(res.value_from_item)
     node = template.node_dict.get('nodeName')
     self.assertEqual(res.value_from_node, node)
     self.assertEqual(res.value_from_item,
                      node._get_property_item('propertyName'))
 def test_parse_substitution(self):
     template = init_template()
     sub_sec = {
         'node_type': 'substituteNodeType',
         'requirements': {
             'substituteRequirement': ['node2', 'dummyRequirement']
         },
         'capabilities': {
             'substituteCapability': ['nodeName', 'capabilityName']
         }
     }
     self.assertIsNone(template.sub_type)
     self.assertEqual(len(template.sub_rules), 0)
     template._parse_substitution(template.db, sub_sec)
     self.assertEqual(template.sub_type, 'substituteNodeType')
     self.assertEqual(len(template.sub_rules), 3)
Ejemplo n.º 19
0
 def test_update_get_property_function_reference_capability_property(self):
     template = init_template()
     value = {
         'get_property':
         ['nodeName', 'capabilityName', 'capabilityProperty']
     }
     res = _is_function(value)
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(template)
     self.assertIsNotNone(res.value_from_node)
     self.assertIsNotNone(res.value_from_item)
     node = template.node_dict.get('nodeName')
     self.assertEqual(res.value_from_node, node)
     self.assertEqual(
         res.value_from_item,
         node._get_capability_property('capabilityName',
                                       'capabilityProperty'))
 def test_prepare_output(self):
     template = ToscaTopology('topoName')
     res = template._prepare_output()
     self.assertEqual(
         res, {
             '00_YAMLORDER_tosca_definitions_version':
             'tosca_simple_yaml_1_0_0',
             '14_YAMLORDER_topology_template': {}
         })
     template = init_template()
     res = template._prepare_output()
     self.assertEqual(
         res, {
             '00_YAMLORDER_tosca_definitions_version':
             'tosca_simple_yaml_1_0_0',
             '14_YAMLORDER_topology_template': {
                 '11_YAMLORDER_inputs': {
                     'inputName': {
                         '00_YAMLORDER_type': 'string'
                     }
                 },
                 '13_YAMLORDER_node_templates': {
                     'node2': {
                         '00_YAMLORDER_type':
                         'nodeTypeName',
                         '01_YAMLORDER_properties': {
                             'propertyName': None
                         },
                         '05_YAMLORDER_requirements': [{
                             'dummyRequirement':
                             'nodeName'
                         }]
                     },
                     'nodeName': {
                         '00_YAMLORDER_type': 'nodeTypeName',
                         '01_YAMLORDER_properties': {
                             'propertyName': None
                         }
                     }
                 }
             }
         })
Ejemplo n.º 21
0
 def test_prepare_schema(self):
     db = ToscaDB()
     res = db._prepare_schema()
     self.assertEqual(res, {
         '00_YAMLORDER_tosca_definitions_version':
         'tosca_simple_yaml_1_0_0'
     })
     db = init_template().db
     res = db._prepare_schema()
     self.assertEqual(
         res, {
             '00_YAMLORDER_tosca_definitions_version':
             'tosca_simple_yaml_1_0_0',
             '08_YAMLORDER_capability_types': {
                 'tosca.capabilities.dummy': {
                     'properties': {
                         'capabilityProperty': {
                             'type': 'string'
                         }
                     }
                 },
                 'tosca.capabilities.substitute': {
                     'properties': {
                         'capabilityProperty': {
                             'type': 'string'
                         }
                     }
                 }
             },
             '11_YAMLORDER_node_types': {
                 'nodeTypeName': {
                     'attributes': {
                         'attributeName': {
                             'type': 'string'
                         }
                     },
                     'capabilities': {
                         'capabilityName': {
                             'type': 'tosca.capabilities.dummy'
                         }
                     },
                     'id':
                     'nodeId',
                     'properties': {
                         'propertyName': {
                             'type': 'string'
                         }
                     },
                     'requirements': [{
                         'dummyRequirement': {
                             'capability': 'tosca.capabilities.dummy'
                         }
                     }]
                 },
                 'substituteNodeType': {
                     'capabilities': {
                         'substituteCapability': {
                             'type': 'tosca.capabilities.substitute'
                         }
                     },
                     'id':
                     'subNodeId',
                     'properties': {
                         'inputName': {
                             'type': 'string'
                         }
                     },
                     'requirements': [{
                         'substituteRequirement': {
                             'capability': 'tosca.capabilities.substitute'
                         }
                     }]
                 }
             }
         })
Ejemplo n.º 22
0
 def test_update_get_attribute_function_reference_invalid_params(self):
     value = {'get_attribute': ['no_such_node', 'some_attribute']}
     res = _is_function(value)
     res._update_function_reference(init_template())
     self.assertIsNone(res.value_from_node)
     self.assertIsNone(res.value_from_item)
Ejemplo n.º 23
0
 def test_update_get_property_function_reference_node_not_found(self):
     value = {'get_property': ['node_name', 'property_name']}
     res = _is_function(value)
     self.assertIsNone(res.value_from_item)
     res._update_function_reference(init_template())
     self.assertIsNone(res.value_from_item)