示例#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'))
示例#2
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)
示例#3
0
 def test_value_is_concat_function(self):
     value = {'concat': ['first', 'second']}
     res = _is_function(value)
     self.assertEqual(res.type, 'concat')
     self.assertEqual(res.extra_data[0].raw_value, 'first')
     self.assertEqual(res.extra_data[0].type, 'string')
     self.assertEqual(res.extra_data[0].value, 'first')
     self.assertEqual(res.extra_data[1].raw_value, 'second')
     self.assertEqual(res.extra_data[1].type, 'string')
     self.assertEqual(res.extra_data[1].value, 'second')
示例#4
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)
示例#5
0
 def test_update_concat_get_input_value_prefix(self):
     value = {'concat': [{'get_input': 'some_input_param'}, 'second']}
     res = _is_function(value)
     self.assertEqual(res.extra_data[0].function.target_property,
                      'some_input_param')
     self.assertEqual(res.extra_data[1].value, 'second')
     res._update_prefix('PREFIX_')
     self.assertEqual(res.extra_data[0].function.target_property,
                      'PREFIX_some_input_param')
     self.assertEqual(res.extra_data[1].value, 'second')
示例#6
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'))
示例#7
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'})
示例#8
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))
示例#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)
示例#10
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']})
示例#11
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'))
示例#12
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'))
示例#13
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'))
示例#14
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'))
示例#15
0
 def test_get_input_function_representation(self):
     value = {'get_input': 'inputName'}
     func = _is_function(value)
     self.assertEqual(func.target_property, 'inputName')
     res = func._get_function_representation()
     self.assertEqual(res, value)
示例#16
0
 def test_value_is_get_input_function(self):
     value = {'get_input': 'some_input_param'}
     res = _is_function(value)
     self.assertEqual(res.target_property, 'some_input_param')
     self.assertEqual(res.type, 'get_input')
示例#17
0
 def test_update_get_property_value_no_prefix(self):
     value = {'get_property': ['NO_PREFIX', 'some_property']}
     res = _is_function(value)
     self.assertEqual(res.extra_data[0], 'NO_PREFIX')
     res._update_prefix('PREFIX_')
     self.assertEqual(res.extra_data[0], 'PREFIX')
示例#18
0
 def test_update_get_input_value_prefix(self):
     value = {'get_input': 'some_input_param'}
     res = _is_function(value)
     self.assertEqual(res.target_property, 'some_input_param')
     res._update_prefix('PREFIX_')
     self.assertEqual(res.target_property, 'PREFIX_some_input_param')
示例#19
0
 def test_value_is_valid_function(self):
     value = {'get_property': ['first', 'second']}
     res = _is_function(value)
     self.assertEqual(res.type, 'get_property')
     self.assertListEqual(res.extra_data, value['get_property'])
示例#20
0
 def test_invalid_function_values_not_list(self):
     value = {'concat': {'first': 'one', 'second': 'two'}}
     res = _is_function(value)
     self.assertIsNone(res)
示例#21
0
 def test_value_is_simple_string(self):
     value = 'not_a_function'
     res = _is_function(value)
     self.assertIsNone(res)
示例#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)
示例#23
0
 def test_value_is_not_valid_function(self):
     value = {'function': 'unknown'}
     res = _is_function(value)
     self.assertIsNone(res)
示例#24
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)
示例#25
0
 def test_value_too_many_functions(self):
     value = {'get_input': 'some_input_param', 'get_property': 'some_value'}
     res = _is_function(value)
     self.assertIsNone(res)