From b7747e2a2dee73fd076359f8001b9f0a300cbbf8 Mon Sep 17 00:00:00 2001 From: Fredrik Lundh Date: Sun, 28 Oct 2001 20:15:40 +0000 Subject: [PATCH] added finditer sanity check --- Lib/sre.py | 5 ++--- Lib/test/test_sre.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Lib/sre.py b/Lib/sre.py index 88b4fabaaf..e8582b7928 100644 --- a/Lib/sre.py +++ b/Lib/sre.py @@ -167,9 +167,8 @@ def findall(pattern, string): if sys.hexversion >= 0x02020000: def finditer(pattern, string): - """Return an iterator over all non-overlapping matches in - the string. For each match, the iterator returns a match - object. + """Return an iterator over all non-overlapping matches in the + string. For each match, the iterator returns a match object. Empty matches are included in the result.""" return _compile(pattern, 0).finditer(string) diff --git a/Lib/test/test_sre.py b/Lib/test/test_sre.py index 75a168cb9c..d1a6909f63 100644 --- a/Lib/test/test_sre.py +++ b/Lib/test/test_sre.py @@ -184,6 +184,17 @@ test(r"""sre.findall(r"(a)|(b)", "abc")""", [("a", ""), ("", "b")]) # bug 117612 test(r"""sre.findall(r"(a|(b))", "aba")""", [("a", ""),("b", "b"),("a", "")]) +if sys.hexversion >= 0x02020000: + if verbose: + print "Running tests on sre.finditer" + def fixup(seq): + # convert iterator to list + if not hasattr(seq, "next") or not hasattr(seq, "__iter__"): + print "finditer returned", type(seq) + return map(lambda item: item.group(0), seq) + # sanity + test(r"""fixup(sre.finditer(r":+", "a:b::c:::d"))""", [":", "::", ":::"]) + if verbose: print "Running tests on sre.match" -- 2.40.0