summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFredrik Lundh <fredrik@pythonware.com>2001-10-28 20:15:40 (GMT)
committerFredrik Lundh <fredrik@pythonware.com>2001-10-28 20:15:40 (GMT)
commitb7747e2a2dee73fd076359f8001b9f0a300cbbf8 (patch)
treee8d9fe1cce6fe2f7416951871f530260b0b291c3
parentca6dfa55c50621b78366685d71041c0414c1189c (diff)
downloadcpython-b7747e2a2dee73fd076359f8001b9f0a300cbbf8.zip
cpython-b7747e2a2dee73fd076359f8001b9f0a300cbbf8.tar.gz
cpython-b7747e2a2dee73fd076359f8001b9f0a300cbbf8.tar.bz2
added finditer sanity check
-rw-r--r--Lib/sre.py5
-rw-r--r--Lib/test/test_sre.py11
2 files changed, 13 insertions, 3 deletions
diff --git a/Lib/sre.py b/Lib/sre.py
index 88b4fab..e8582b7 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 75a168c..d1a6909 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"