def test_uncaptured_macro_tag(self): node_list = [ grammar.MacroTagNode('', 'Y'), ] self.assertEqual( grammar.RegexScribe(node_list).translate(), r'\d{4}', )
def test_macro_tag(self): node_list = [ grammar.MacroTagNode('year', 'Y'), ] self.assertEqual( grammar.RegexScribe(node_list).translate(), r'(?P<year>\d{4})', )
def test_complex(self): self.assertEqual( grammar.Parser( '/articles/<id=\d{5}>/<year:Y>/(<slug>/)').get_node_list(), [ grammar.TextNode('/articles/'), grammar.RegexTagNode('id', r'\d{5}'), grammar.TextNode('/'), grammar.MacroTagNode('year', 'Y'), grammar.TextNode('/'), grammar.OptionalNode([ grammar.TagNode('slug'), grammar.TextNode('/'), ]), ])
def test_unnamed_macro(self): self.assertEqual( grammar.Parser('<:m>').get_node_list(), [grammar.MacroTagNode('', 'm')])
def test_macro_tag(self): self.assertEqual( grammar.Parser('<test:m>').get_node_list(), [grammar.MacroTagNode('test', 'm')])