def insertTokensIntoTemplate(template, **kwargs): neededTokenValues = extractTokensFromTemplates(template) for key, value in kwargs.items(): if key in neededTokenValues: neededTokenValues.remove(key) template = template.replace("<" + key + ">", value) if len(neededTokenValues) > 0: raise ValueError return template
def test_simpleTemplate(): assert extractTokensFromTemplates("<test>") == {"test"}
def test_brackets(): assert extractTokensFromTemplates("<bracket>") == set(["bracket"]) assert extractTokensFromTemplates("no_bracket") == set()
def test_characters(): assert extractTokensFromTemplates("<@>") == set() assert extractTokensFromTemplates("<*>") == set()
def test_noTemplate(): assert extractTokensFromTemplates("") == set()
def test_words(): assert extractTokensFromTemplates("word<words>") == set(["words"])
def test_number(): assert extractTokensFromTemplates("<1>") == set("1")
def test_NestTemplate(): assert extractTokensFromTemplates("<<test>>") == {"test"} assert extractTokensFromTemplates("<!<test!><>") == set()
def test_complexTemplate(): assert extractTokensFromTemplates("<1> <2> <3> <4>") == { "1", "2", "3", "4" }
def extractPageTokens(self): tokens = set() for template in self.templates: [tokens.add(t) for t in extractTokensFromTemplates(template)] return tokens