예제 #1
0
 def test_uncaptured_macro_tag(self):
     node_list = [
         grammar.MacroTagNode('', 'Y'),
     ]
     self.assertEqual(
         grammar.RegexScribe(node_list).translate(),
         r'\d{4}',
     )
예제 #2
0
 def test_macro_tag(self):
     node_list = [
         grammar.MacroTagNode('year', 'Y'),
     ]
     self.assertEqual(
         grammar.RegexScribe(node_list).translate(),
         r'(?P<year>\d{4})',
     )
예제 #3
0
 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('/'),
                 ]),
             ])
예제 #4
0
 def test_unnamed_macro(self):
     self.assertEqual(
         grammar.Parser('<:m>').get_node_list(),
         [grammar.MacroTagNode('', 'm')])
예제 #5
0
 def test_macro_tag(self):
     self.assertEqual(
         grammar.Parser('<test:m>').get_node_list(),
         [grammar.MacroTagNode('test', 'm')])