Example #1
0
 def test_schema_none_description(self):
     tpl_snippet = '''
     cpus:
       type: integer
     '''
     schema = yamlparser.simple_parse(tpl_snippet)
     cpus_schema = Schema('cpus', schema['cpus'])
     self.assertEqual('', cpus_schema.description)
Example #2
0
 def test_default_field_in_dataentity(self):
     value_snippet = '''
     name: Mike
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     data = data.validate()
     self.assertEqual('unknown', data.get('gender'))
Example #3
0
 def test_built_in_datatype_without_properties(self):
     value_snippet = '''
     2
     '''
     value = yamlparser.simple_parse(value_snippet)
     datatype = DataType('PortDef')
     self.assertEqual('integer', datatype.value_type)
     data = DataEntity('PortDef', value)
     self.assertIsNotNone(data.validate())
Example #4
0
 def test_custom_datatype(self):
     value_snippet = '''
     name: Mike
     gender: male
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     self.assertIsNotNone(data.validate())
Example #5
0
 def test_schema_miss_type(self):
     tpl_snippet = '''
     cpus:
       description: Number of CPUs for the server.
     '''
     schema = yamlparser.simple_parse(tpl_snippet)
     error = self.assertRaises(exception.InvalidSchemaError, Schema,
                               'cpus', schema['cpus'])
     self.assertEqual('Schema cpus must have type.', str(error))
Example #6
0
 def test_built_in_nested_datatype(self):
     value_snippet = '''
     user_port:
       protocol: tcp
       target: [50000]
       source: [9000]
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('PortSpec', value.get('user_port'))
     self.assertIsNotNone(data.validate())
Example #7
0
 def test_non_dict_value_for_datatype(self):
     value_snippet = '''
     [Tom, Jerry]
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(exception.TypeMismatchError, data.validate)
     self.assertEqual('[\'Tom\', \'Jerry\'] must be of type: '
                      '"tosca.my.datatypes.PeopleBase".', error.__str__())
Example #8
0
 def test_schema_not_dict(self):
     tpl_snippet = '''
     cpus:
       - type: integer
       - description: Number of CPUs for the server.
     '''
     schema = yamlparser.simple_parse(tpl_snippet)
     error = self.assertRaises(exception.InvalidSchemaError, Schema,
                               'cpus', schema['cpus'])
     self.assertEqual('Schema cpus must be a dict.', str(error))
Example #9
0
 def test_type_error_in_dataentity(self):
     value_snippet = '''
     name: 123
     gender: male
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(ValueError, data.validate)
     self.assertEqual('"123" is not a string', error.__str__())
Example #10
0
 def test_value_error_in_dataentity(self):
     value_snippet = '''
     name: M
     gender: male
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(exception.ValidationError, data.validate)
     self.assertEqual('length of name: M must be at least "2".',
                      error.__str__())
Example #11
0
 def test_built_in_datatype(self):
     value_snippet = '''
     private_network:
       network_name: private
       network_id: 3e54214f-5c09-1bc9-9999-44100326da1b
       addresses: [ 10.111.128.10 ]
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.datatypes.network.NetworkInfo',
                       value.get('private_network'))
     self.assertIsNotNone(data.validate())
Example #12
0
 def test_validation_in_collection_entry(self):
     value_snippet = '''
     name: Mike
     gender: male
     addresses: {Home: 1, Office: 9 bar avenue}
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.People', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(ValueError, data.validate)
     self.assertEqual('"1" is not a string', error.__str__())
Example #13
0
 def test_built_in_datatype_with_short_name(self):
     value_snippet = '''
     ethernet_port:
       port_name: port1
       port_id: 2c0c7a37-691a-23a6-7709-2d10ad041467
       network_id: 3e54214f-5c09-1bc9-9999-44100326da1b
       mac_address: f1:18:3b:41:92:1e
       addresses: [ 172.24.9.102 ]
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('PortInfo', value.get('ethernet_port'))
     self.assertIsNotNone(data.validate())
Example #14
0
 def test_missing_field_in_dataentity(self):
     value_snippet = '''
     gender: male
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(exception.MissingRequiredFieldError,
                               data.validate)
     self.assertEqual('Data value of type tosca.my.datatypes.PeopleBase '
                      'is missing required field: "[\'name\']".',
                      error.__str__())
Example #15
0
 def test_field_error_in_dataentity(self):
     value_snippet = '''
     nema: Mike
     gender: male
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.PeopleBase', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(exception.UnknownFieldError, data.validate)
     self.assertEqual('Data value of type tosca.my.datatypes.PeopleBase '
                      'contain(s) unknown field: "nema", refer to the '
                      'definition to verify valid values.',
                      error.__str__())
Example #16
0
 def test_schema_dict(self):
     tpl_snippet = '''
     cpus:
       type: integer
       description: Number of CPUs for the server.
     '''
     schema = yamlparser.simple_parse(tpl_snippet)
     cpus_schema = Schema('cpus', schema['cpus'])
     self.assertEqual(len(cpus_schema), 2)
     self.assertEqual('integer', cpus_schema.type)
     self.assertEqual('Number of CPUs for the server.',
                      cpus_schema.description)
     self.assertEqual(True, cpus_schema.required)
     self.assertIsNone(cpus_schema.default)
Example #17
0
 def test_custom_datatype_with_parent(self):
     value_snippet = '''
     name: Mike
     gender: male
     contacts:
       - {contact_name: Tom,
         contact_email: [email protected],
         contact_phone: '123456789'}
       - {contact_name: Jerry,
         contact_email: [email protected],
         contact_phone: '321654987'}
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.People', value,
                       DataTypeTest.custom_type_def)
     self.assertIsNotNone(data.validate())
Example #18
0
 def test_built_in_nested_datatype_portdef(self):
     tpl_snippet = '''
     inputs:
       db_port:
         type: PortDef
         description: Port for the MySQL database
     '''
     inputs = yamlparser.simple_parse(tpl_snippet)['inputs']
     name, attrs = list(inputs.items())[0]
     input = Input(name, attrs)
     self.assertIsNone(input.validate(3360))
     try:
         input.validate(336000)
     except Exception as err:
         self.assertTrue(isinstance(err, exception.ValidationError))
         self.assertEqual('None: 336000 is out of range (min:1, '
                          'max:65535).', err.__str__())
Example #19
0
    def test_list_entry_schema(self):
        test_property_schema = {'type': 'list',
                                'entry_schema': {'type': 'string'}}
        propertyInstance = Property('test_property', ['a', 'b'],
                                    test_property_schema)
        self.assertIsNone(propertyInstance.validate())
        self.assertEqual(['a', 'b'], propertyInstance.value)

        schema_snippet = '''
        type: list
        entry_schema:
          type: string
          constraints:
            - min_length: 2
        '''
        test_property_schema = yamlparser.simple_parse(schema_snippet)
        propertyInstance = Property('test_property', ['ab', 'cd'],
                                    test_property_schema)
        self.assertIsNone(propertyInstance.validate())
        self.assertEqual(['ab', 'cd'], propertyInstance.value)
Example #20
0
 def test_validation_in_nested_datatype(self):
     value_snippet = '''
     name: Mike
     gender: male
     contacts:
       - {contact_name: Tom,
         contact_email: [email protected],
         contact_pone: '123456789'}
       - {contact_name: Jerry,
         contact_email: [email protected],
         contact_phone: '321654987'}
     '''
     value = yamlparser.simple_parse(value_snippet)
     data = DataEntity('tosca.my.datatypes.People', value,
                       DataTypeTest.custom_type_def)
     error = self.assertRaises(exception.UnknownFieldError, data.validate)
     self.assertEqual('Data value of type tosca.my.datatypes.ContactInfo '
                      'contain(s) unknown field: "contact_pone", refer to '
                      'the definition to verify valid values.',
                      error.__str__())
Example #21
0
 def test_empty_template(self):
     value_snippet = ''
     value = yamlparser.simple_parse(value_snippet)
     self.assertEqual(value, {})