def testCharProperty (self): text = r'\p{D}' self.assertRaises(xmlre.RegularExpressionError, xmlre.MaybeMatchCharacterClass, text, 0) text = r'\P{D}' self.assertRaises(xmlre.RegularExpressionError, xmlre.MaybeMatchCharacterClass, text, 0) text = r'\p{N}' (charset, position) = xmlre.MaybeMatchCharacterClass(text, 0) self.assertEqual(position, len(text)) self.assertEqual(charset, unicode.PropertyMap['N']) text = r'\P{N}' (charset, position) = xmlre.MaybeMatchCharacterClass(text, 0) self.assertEqual(position, len(text)) self.assertEqual(charset.negate(), unicode.PropertyMap['N']) text = r'\p{Sm}' (charset, position) = xmlre.MaybeMatchCharacterClass(text, 0) self.assertEqual(position, len(text)) self.assertEqual(charset, unicode.PropertyMap['Sm']) text = r'\p{IsArrows}' (charset, position) = xmlre.MaybeMatchCharacterClass(text, 0) self.assertEqual(position, len(text)) self.assertEqual(charset, unicode.BlockMap['Arrows']) text = r'\P{IsArrows}' (charset, position) = xmlre.MaybeMatchCharacterClass(text, 0) self.assertEqual(position, len(text)) self.assertEqual(charset.negate(), unicode.BlockMap['Arrows'])
def testSingleCharEscapes (self): # 17 chars recognized as escapes self.assertEqual(len(unicode.SingleCharEsc), 17) (charset, position) = xmlre.MaybeMatchCharacterClass(r'\t', 0) self.assertEqual(charset.asTuples(), [ (9, 9) ]) self.assertEqual(2, position) (charset, position) = xmlre.MaybeMatchCharacterClass(r'\?', 0) self.assertEqual(charset.asTuples(), [ (ord('?'), ord('?')) ]) self.assertEqual(2, position) (charset, position) = xmlre.MaybeMatchCharacterClass(r'\\', 0) self.assertEqual(charset.asTuples(), [ (ord('\\'), ord('\\')) ]) self.assertEqual(2, position)
def testMultiCharEscapes (self): # 5*2 chars recognized as escapes self.assertEqual(len(unicode.MultiCharEsc), 10) (charset, position) = xmlre.MaybeMatchCharacterClass(r'\s', 0) self.assertEqual(charset.asTuples(), [ (9, 10), (13, 13), (32, 32) ]) self.assertEqual(2, position)
def testWildcardEscape (self): (charset, position) = xmlre.MaybeMatchCharacterClass('.', 0) self.assertEqual(charset, unicode.WildcardEsc) self.assertEqual(position, 1)
def testRangeErrors (self): self.assertTrue(xmlre.MaybeMatchCharacterClass('', 1) is None)