def _skipTypeIfTagNameMatch(trimmedModelTypes, textToTest): typesToTest = [] for typeObj in trimmedModelTypes: typesToTest.append(typeObj) for typeObj in typesToTest: if modelFuncs.hasTag(textToTest, typeObj): trimmedModelTypes.remove(typeObj)
def testTags(self): modelFile = 'resources/models/json/yacg_model_schema.json' modelFileExists = os.path.isfile(modelFile) self.assertTrue('model file exists: ' + modelFile, modelFileExists) model = config.Model() model.schema = modelFile modelTypes = getModelFromJson(model, []) metaModelTypes = [] self.assertIsNotNone(modelTypes) tagType = None propertyType = None complexTypeType = None for type in modelTypes: if hasTag('metaModelType', type): metaModelTypes.append(type.name) if type.name == 'Tag': tagType = type elif type.name == 'Property': propertyType = type elif type.name == 'ComplexType': complexTypeType = type self.assertEqual('yacg.model.model', type.domain) self.assertIsNotNone(tagType) constructorValueProps1 = getPropertiesThatHasTag('constructorValue', tagType) self.assertEqual(2, len(constructorValueProps1)) self.assertIsNotNone(propertyType) constructorValueProps2 = getPropertiesThatHasTag('constructorValue', propertyType) self.assertEqual(2, len(constructorValueProps2)) self.assertIsNotNone(complexTypeType) constructorValueProps3 = getPropertiesThatHasTag('constructorValue', complexTypeType) self.assertEqual(0, len(constructorValueProps3)) expectedMetaModelTypes = [ 'Type', 'ObjectType', 'IntegerType', 'NumberType', 'BooleanType', 'StringType', 'UuidType', 'EnumType', 'DateType', 'DateTimeType', 'BytesType', 'ComplexType', 'DictionaryType' ] self.assertEqual(expectedMetaModelTypes, metaModelTypes)
def _addTypeIfTagNameMatch(modelTypes, trimmedModelTypes, textToTest): for typeObj in modelTypes: if modelFuncs.hasTag(textToTest, typeObj): trimmedModelTypes.append(typeObj)