def test_which_handles_resolving_simple_template(self): templatesRepository = { "SampleTemplate" : 'Simple ${test}' } resolver = TemplateResolver(templatesRepository, "SampleTemplate") data = {} data["test"] = "TEST!" content = resolver.fill(data) assert content == 'Simple TEST!', "Template wasn't resolved properly."
def test_which_handles_inproper_data_dictionary_without_some_parameters(self): templatesRepository = { "SampleTemplate" : '${first} ${second} ${third}' } resolver = TemplateResolver(templatesRepository, "SampleTemplate") data = {} data["first"] = "FIRST" data["third"] = "THIRD" content = resolver.fill(data) assert content == "FIRST ${second} THIRD", "Template wasn't resolved properly."
class OnlyBooleanEntriesPopulator(IElementPopulator): def __init__(self, sectionName, templates, settingsObject): self.name = sectionName self.templates = templates self.parameters = settingsObject self.templateName = sectionName.split('_')[-1] nameElements = self.templateName.split('-') self.settingName = nameElements[0] self.fieldName = nameElements[1] self.separator = ",\n" def getType(self): return "CreateBooleanEntriesOnly" def populate(self): result = [] for parameterName, parameter in self.parameters[self.settingName].iteritems(): for attributeName, attribute in parameter.iteritems(): if attributeName == self.fieldName: nameForResolving = self.templateName + "$%r" % (attribute) expanded = self.expandParameters(parameter) self.templateResolver = TemplateResolver(self.templates, nameForResolving) result.append(self.templateResolver.fill(expanded)) return self.separator.join(result)
def populate(self): result = [] for parameterName, parameter in self.parameters[self.settingName].iteritems(): for attributeName, attribute in parameter.iteritems(): if attributeName == self.fieldName: nameForResolving = self.templateName + "$%r" % (attribute) expanded = self.expandParameters(parameter) self.templateResolver = TemplateResolver(self.templates, nameForResolving) result.append(self.templateResolver.fill(expanded)) return self.separator.join(result)
class IElementForStg(object): def __init__(self, templates, settingsObject): self.templatesRepository = templates self.settingsObject = settingsObject self.templateResolver = TemplateResolver(self.templatesRepository, self.getTemplateName()) def getType(self): raise NotImplementedError("IElementForStg is an abstract class.") def getTemplateName(self): raise NotImplementedError("IElementForStg is an abstract class.") def resolve(self): return self.templateResolver.fill(self.settingsObject)
def __init__(self, sectionName, templates, settingsObject): self.name = sectionName self.templates = templates self.parameters = settingsObject splittedSectionName = sectionName.split('_')[-1] splittedTemplateName = splittedSectionName.split('-') self.templateName = splittedTemplateName[0] self.settingName = splittedTemplateName[1] if not self.templates.has_key(self.templateName): messageArguments = (self.templateName, self.name) raise AttributeError("Missing template (%s) for specified section '%s'" % messageArguments) self.templateResolver = TemplateResolver(self.templates, self.templateName) self.separator = "|\n"
class ParameterListPopulator(IElementPopulator): def __init__(self, sectionName, templates, settingsObject): self.name = sectionName self.templates = templates self.parameters = settingsObject splittedSectionName = sectionName.split('_')[-1] splittedTemplateName = splittedSectionName.split('-') self.templateName = splittedTemplateName[0] self.settingName = splittedTemplateName[1] if not self.templates.has_key(self.templateName): messageArguments = (self.templateName, self.name) raise AttributeError("Missing template (%s) for specified section '%s'" % messageArguments) self.templateResolver = TemplateResolver(self.templates, self.templateName) self.separator = "|\n" def getType(self): return "CreateParametersListWithName" def openClause(self): return self.parameters["ModulePrefix"] + "_" + self.settingName.lower() + ":\n" def closeClause(self): return "\n;" def populate(self): result = self.openClause() blocks = [] for settingName, setting in self.parameters.iteritems(): if settingName.find("Parameters") != -1: for parameterName, parameter in setting.iteritems(): blocks.append(self.templateResolver.fill(self.expandParameters(parameter))) result += self.separator.join(blocks) result += self.closeClause() return result
def __init__(self, templates, settingsObject): self.templatesRepository = templates self.settingsObject = settingsObject self.templateResolver = TemplateResolver(self.templatesRepository, self.getTemplateName())