def testSimpleUsage(self): parseTree = [use('import', {'#': ['guideline']})] self.assertEqual(parse('[import [guideline]]'), parseTree)
def testAtributeShortcut(self): self.assertEqual(parse('[a b=c]'), [use('a', {'b': [use('c')]})])
def testDefinitionShortcut(self): a = parse('[a :=b]') b = parse('[a :=[[b]]]') self.assertEqual(a, b) self.assertEqual(a, [use('a', {':': [use('b')]})])
def testContentShortcut(self): self.assertEqual(parse('[a #b]'), [use('a', {'#': [use('#b')]})])
def testTagNameContainingSpecialCharacters(self): self.assertEqual(parse('["$#%!=]'), [use('"$#%!=')])
def testTagNameWithLineEnd(self): self.assertEqual(parse('[t\n]'), [use('t')])
def testAttributeName(self): self.assertEqual(parse('[t "$#:%!=[]]'), [use('t', {'"$#:%!': []})])
def testListTemplate(self): parseTree = [use('for', { 'list': [use('enumerate', {'list': [use('customers')]})], 'template': [use('order'), '. ', use('name')] })] self.assertEqual(parse('[for list=[[enumerate list=[[customers]]]] template=[[order]. [name]]]'), parseTree)