def testInstanceValidatorDetectDuplicateKeys(self):
   with self.assertRaises(SystemExit):
     parse = instance_parser.ParseYaml(
         path.join(_TESTCASE_PATH,
                   'BAD',
                   'bad_duplicate_keys.yaml'))
     self.assertIsNone(parse)
 def testInstanceValidatorDetectMissingColon(self):
   with self.assertRaises(SystemExit):
     parse = instance_parser.ParseYaml(
         path.join(_TESTCASE_PATH,
                   'BAD',
                   'bad_missing_colon.yaml'))
     self.assertIsNone(parse)
示例#3
0
def _CreateEntityInstances(yaml_filename):
    parsed_yaml = instance_parser.ParseYaml(
        path.join(_INSTANCES_PATH, yaml_filename))
    entities = {}
    for entity_name, entity_yaml in parsed_yaml.items():
        entities[entity_name] = entity_instance.EntityInstance(entity_yaml)
    return entities
 def testInstanceValidatorDetectImproperSpacing(self):
   with self.assertRaises(SystemExit):
     parse = instance_parser.ParseYaml(
         path.join(_TESTCASE_PATH,
                   'BAD',
                   'bad_spacing.yaml'))
     self.assertIsNone(parse)
 def testInstanceValidatorDetectImproperTranslationKeys(self):
   with self.assertRaises(SystemExit):
     parse = instance_parser.ParseYaml(
         path.join(_TESTCASE_PATH,
                   'BAD',
                   'bad_translation_keys.yaml'))
     self.assertIsNone(parse)
 def testValidateStates(self):
     parsed = instance_parser.ParseYaml(
         path.join(_TESTCASE_PATH, 'GOOD', 'good_translation_states.yaml'))
     parsed = dict(parsed)
     for raw_entity in list(parsed.keys()):
         entity_parsed = dict(parsed[raw_entity])
         entity = entity_instance.EntityInstance(entity_parsed)
         if not entity.IsValidEntityInstance(self._universe):
             self.fail('exception incorrectly raised')
 def testInstanceValidatorParseMultipleEntities(self):
   parse = instance_parser.ParseYaml(
       path.join(_TESTCASE_PATH,
                 'GOOD',
                 'good_multi_instances.yaml'))
   self.assertLen(parse.keys(), 3)
   self.assertIn('AHU-11', parse.keys())
   self.assertIn('FCU-1', parse.keys())
   self.assertIn('FCU-10', parse.keys())
    def testValidateMultipleCompliantTranslationWithIdenticalTypes(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD',
                      'good_translation_identical.yaml'))
        parsed = dict(parsed)
        for entity_name in list(parsed.keys()):
            entity = dict(parsed[entity_name])
            instance = entity_instance.EntityInstance(entity)

            if not instance.IsValidEntityInstance(self._universe):
                self.fail('exception incorrectly raised')
    def testValidateBadEntityType(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'BAD', 'bad_building_type_entity.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if instance.IsValidEntityInstance(self._universe):
            self.fail('exception not raised')
    def testValidateGoodExample(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD', 'good_building_type.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if not instance.IsValidEntityInstance(self._universe):
            self.fail('exception incorrectly raised')
    def testValidateMultipleCompliantTranslationWithFields(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD',
                      'good_building_translation_fields.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if not instance.IsValidEntityInstance(self._universe):
            self.fail('exception incorrectly raised')
    def testValidateMultipleCompliantTranslationWithRequiredFieldMissing(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'BAD',
                      'bad_translation_with_required_field_missing.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if instance.IsValidEntityInstance(self._universe):
            self.fail('exception not raised')
    def testValidateMultipleCompliantTranslationWithNamespaceOther(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD', 'good_translation.yaml'))

        parsed = dict(parsed)
        entity_name_lighting = list(parsed.keys())[0]

        entity_lighting = dict(parsed[entity_name_lighting])
        instance = entity_instance.EntityInstance(entity_lighting)

        if not instance.IsValidEntityInstance(self._universe):
            self.fail('exception incorrectly raised')
    def testValidateBadTranslationUnitValues(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'BAD',
                      'bad_translation_unit_values.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if instance.IsValidEntityInstance(self._universe):
            self.fail('exception not raised')
    def testValidateTranslationUnitsAndStates(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD',
                      'good_translation_units_and_states.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]

        entity = dict(parsed[entity_name])
        instance = entity_instance.EntityInstance(entity)

        if not instance.IsValidEntityInstance(self._universe):
            self.fail('exception incorrectly raised')
    def testValidateBadEntityTypeFormat(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'BAD', 'bad_building_type.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]
        entity = dict(parsed[entity_name])

        try:
            entity_instance.EntityInstance(entity)
        except TypeError as e:
            self.assertEqual(type(e), TypeError)
        else:
            self.fail('{0} was not raised'.format(TypeError))
    def testValidateBadLinkMissingField(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'BAD', 'bad_links_missing_field.yaml'))
        entity_instances = {}
        parsed = dict(parsed)
        for raw_entity in list(parsed.keys()):
            entity_parsed = dict(parsed[raw_entity])
            entity = entity_instance.EntityInstance(entity_parsed)
            entity_instances[raw_entity] = entity

        if entity_instances.get('ENTITY-NAME')\
            .IsValidEntityInstance(self._universe, entity_instances):
            self.fail('exception not raised')
    def testValidateGoodLinkEntityName(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD', 'good_links.yaml'))
        entity_instances = {}
        parsed = dict(parsed)
        for raw_entity in list(parsed.keys()):
            entity_parsed = dict(parsed[raw_entity])
            entity = entity_instance.EntityInstance(entity_parsed)
            entity_instances[raw_entity] = entity

        for _, instance in entity_instances.items():
            if not instance.IsValidEntityInstance(self._universe,
                                                  entity_instances):
                self.fail('exception incorrectly raised')
    def testGoodConnections(self):
        parsed = instance_parser.ParseYaml(
            path.join(_TESTCASE_PATH, 'GOOD',
                      'good_building_connections.yaml'))
        parsed = dict(parsed)
        entity_name = list(parsed.keys())[0]
        entity = dict(parsed[entity_name])

        if 'connections' not in entity.keys():
            self.fail('entity does not have connections when expected')
        if self._universe.connections_universe is None:
            self.fail('universe does not valid connections universe')

        instance = entity_instance.EntityInstance(entity)

        if not instance.IsValidEntityInstance(self._universe):
            self.fail('exception incorrectly raised')
示例#20
0
def deserialize(yaml_files):
    """Parses a yaml configuration file and deserialize it.
  Args:
    yaml_files: list of building configuration file.

  Returns:
    entity_instances: all the deserialized instances.
  """

    parsed_yaml = {}
    print('Validating syntax please wait ...')
    for yaml_file in yaml_files:
        print('Parsing file: {0}, please wait ...'.format(yaml_file))
        parsed_yaml.update(instance_parser.ParseYaml(yaml_file))

        print('Syntax checks passed for file: {0}'.format(yaml_file))

    entity_instances = {}
    for entity_name, entity_yaml in parsed_yaml.items():
        entity_instances[entity_name] = entity_instance.EntityInstance(
            entity_yaml)

    return entity_instances
 def testInstanceValidatorParseProperConnections(self):
   parse = instance_parser.ParseYaml(
       path.join(_TESTCASE_PATH,
                 'GOOD',
                 'good_building_connections.yaml'))
   self.assertIsNotNone(parse)