Exemplo n.º 1
0
 def setUp(self):
     self.expr = '\w+'
     self.prefix = r'\b'
     self.suffix = r'\b'
     self.rule_data = {'re': self.expr, 'flags': 'I'}
     self.rule = RegularExpressionRule(None,
         { 'prefix': self.prefix,
           'suffix': self.suffix },
         self.rule_data, DEFAULT_FLAGS, {})
     self.text = u'Some text\n    with spaces\nи другими символами'
Exemplo n.º 2
0
class TestRegularExpressionRule(unittest.TestCase):

    def setUp(self):
        self.expr = '\w+'
        self.prefix = r'\b'
        self.suffix = r'\b'
        self.rule_data = {'re': self.expr, 'flags': 'I'}
        self.rule = RegularExpressionRule(None,
            { 'prefix': self.prefix,
              'suffix': self.suffix },
            self.rule_data, DEFAULT_FLAGS, {})
        self.text = u'Some text\n    with spaces\nи другими символами'

    def test_itermatches(self):
        x = list(self.rule.itermatches(self.text))
        self.assertEqual(len(x), 1)
        pattern, matches = x[0]
        flags = process_flags(self.rule_data['flags'], DEFAULT_FLAGS)
        self.assertEqual(pattern['original'], self.expr)
        self.assertEqual(pattern['compiled'],
                         re.compile(self.prefix + self.expr + self.suffix, flags))
        matches_list = list(matches)
        self.assertEqual(len(matches_list), 7)
        self.assertEqual(matches_list[0], (0, 4))
        self.assertEqual(matches_list[1], (5, 9))
        self.assertEqual(matches_list[2], (14, 18))
        self.assertEqual(matches_list[3], (19, 25))
        self.assertEqual(matches_list[4], (26, 27))
        self.assertEqual(matches_list[5], (28, 35))
        self.assertEqual(matches_list[6], (36, 45))

    def test_process(self):
        result = self.rule.process(self.text)
        self.assertEqual(result.lines,
                         dict(enumerate(self.text.splitlines(), 1)))
        self.assertEqual(result.pattern_matches,
            {
                self.expr: {
                    1: [1, [(0, 4), (5, 9)]],
                    2: [1, [(4, 8), (9, 15)]],
                    3: [1, [(0, 1), (2, 9), (10, 19)]]
                }
            }
        )