added finditer sanity check

This commit is contained in:
Fredrik Lundh 2001-10-28 20:15:40 +00:00
parent ca6dfa55c5
commit b7747e2a2d
2 changed files with 13 additions and 3 deletions

View File

@ -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)

View File

@ -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"