implement 'text.rextract()'

This commit is contained in:
Mike Fährmann
2019-05-28 21:03:41 +02:00
parent 8bd5a19515
commit 2b1999476e
2 changed files with 32 additions and 4 deletions

View File

@@ -161,7 +161,7 @@ class TestText(unittest.TestCase):
def test_extract(self, f=text.extract):
txt = "<a><b>"
self.assertEqual(f(txt, "<", ">"), ("a", 3))
self.assertEqual(f(txt, "<", ">"), ("a" , 3))
self.assertEqual(f(txt, "X", ">"), (None, 0))
self.assertEqual(f(txt, "<", "X"), (None, 0))
@@ -173,9 +173,27 @@ class TestText(unittest.TestCase):
# invalid arguments
for value in INVALID:
self.assertEqual(f(value , "<" , ">") , (None, 0))
self.assertEqual(f(txt, value, ">") , (None, 0))
self.assertEqual(f(txt, "<" , value), (None, 0))
self.assertEqual(f(value, "<" , ">") , (None, 0))
self.assertEqual(f(txt , value, ">") , (None, 0))
self.assertEqual(f(txt , "<" , value), (None, 0))
def test_rextract(self, f=text.rextract):
txt = "<a><b>"
self.assertEqual(f(txt, "<", ">"), ("b" , 3))
self.assertEqual(f(txt, "X", ">"), (None, -1))
self.assertEqual(f(txt, "<", "X"), (None, -1))
# 'pos' argument
for i in range(10, 3, -1):
self.assertEqual(f(txt, "<", ">", i), ("b", 3))
for i in range(3, 0, -1):
self.assertEqual(f(txt, "<", ">", i), ("a", 0))
# invalid arguments
for value in INVALID:
self.assertEqual(f(value, "<" , ">") , (None, -1))
self.assertEqual(f(txt , value, ">") , (None, -1))
self.assertEqual(f(txt , "<" , value), (None, -1))
def test_extract_all(self, f=text.extract_all):
txt = "[c][b][a]: xyz! [d][e"