[pypy-svn] r75801 - pypy/branch/rsre2/pypy/rlib/rsre/test
arigo at codespeak.net
arigo at codespeak.net
Fri Jul 2 22:46:48 CEST 2010
Author: arigo
Date: Fri Jul 2 22:46:46 2010
New Revision: 75801
Modified:
pypy/branch/rsre2/pypy/rlib/rsre/test/test_match.py
pypy/branch/rsre2/pypy/rlib/rsre/test/test_search.py
Log:
Update tests.
Modified: pypy/branch/rsre2/pypy/rlib/rsre/test/test_match.py
==============================================================================
--- pypy/branch/rsre2/pypy/rlib/rsre/test/test_match.py (original)
+++ pypy/branch/rsre2/pypy/rlib/rsre/test/test_match.py Fri Jul 2 22:46:46 2010
@@ -1,4 +1,4 @@
-import _sre, re
+import _sre, re, sre_compile
import rsre
@@ -12,58 +12,66 @@
try:
_sre.compile = my_compile
try:
- re.compile(regexp)
+ sre_compile.compile(regexp, 0)
except GotIt, e:
pass
else:
raise ValueError("did not reach _sre.compile()!")
finally:
_sre.compile = saved
- return e.args[0], re.compile(regexp)
+ return e.args[0]
+
+def get_code_and_re(regexp):
+ return get_code(regexp), re.compile(regexp)
+
+def test_get_code_repetition():
+ c1 = get_code(r"a+")
+ c2 = get_code(r"a+")
+ assert c1 == c2
class TestMatch:
def test_any(self):
- r, _ = get_code(r"ab.cd")
+ r = get_code(r"ab.cd")
assert rsre.match(r, "abXcdef")
assert not rsre.match(r, "ab\ncdef")
assert not rsre.match(r, "abXcDef")
def test_any_repetition(self):
- r, _ = get_code(r"ab.*cd")
+ r = get_code(r"ab.*cd")
assert rsre.match(r, "abXXXXcdef")
assert rsre.match(r, "abcdef")
assert not rsre.match(r, "abX\nXcdef")
assert not rsre.match(r, "abXXXXcDef")
def test_any_all(self):
- r, _ = get_code(r"(?s)ab.cd")
+ r = get_code(r"(?s)ab.cd")
assert rsre.match(r, "abXcdef")
assert rsre.match(r, "ab\ncdef")
assert not rsre.match(r, "ab\ncDef")
def test_any_all_repetition(self):
- r, _ = get_code(r"(?s)ab.*cd")
+ r = get_code(r"(?s)ab.*cd")
assert rsre.match(r, "abXXXXcdef")
assert rsre.match(r, "abcdef")
assert rsre.match(r, "abX\nXcdef")
assert not rsre.match(r, "abX\nXcDef")
def test_assert(self):
- r, _ = get_code(r"abc(?=def)(.)")
+ r = get_code(r"abc(?=def)(.)")
res = rsre.match(r, "abcdefghi")
assert res is not None and res.get_mark(1) == 4
assert not rsre.match(r, "abcdeFghi")
def test_assert_not(self):
- r, _ = get_code(r"abc(?!def)(.)")
+ r = get_code(r"abc(?!def)(.)")
res = rsre.match(r, "abcdeFghi")
assert res is not None and res.get_mark(1) == 4
assert not rsre.match(r, "abcdefghi")
def test_lookbehind(self):
- r, _ = get_code(r"([a-z]*)(?<=de)")
+ r = get_code(r"([a-z]*)(?<=de)")
assert rsre.match(r, "ade")
res = rsre.match(r, "adefg")
assert res is not None and res.get_mark(1) == 3
@@ -76,7 +84,7 @@
res = rsre.match(r, s)
assert res is not None
return res.get_mark(1)
- r, _ = get_code(r"([a-z]*)(?<!dd)")
+ r = get_code(r"([a-z]*)(?<!dd)")
assert found("ade") == 3
assert found("adefg") == 5
assert found("abcdd") == 4
@@ -86,24 +94,24 @@
assert found("abXde") == 2
def test_at(self):
- r, _ = get_code(r"abc$")
+ r = get_code(r"abc$")
assert rsre.match(r, "abc")
assert not rsre.match(r, "abcd")
assert not rsre.match(r, "ab")
def test_repeated_set(self):
- r, _ = get_code(r"[a0x]+f")
+ r = get_code(r"[a0x]+f")
assert rsre.match(r, "a0af")
assert not rsre.match(r, "a0yaf")
def test_category(self):
- r, _ = get_code(r"[\sx]")
+ r = get_code(r"[\sx]")
assert rsre.match(r, "x")
assert rsre.match(r, " ")
assert not rsre.match(r, "n")
def test_groupref(self):
- r, _ = get_code(r"(xx+)\1+$") # match non-prime numbers of x
+ r = get_code(r"(xx+)\1+$") # match non-prime numbers of x
assert not rsre.match(r, "xx")
assert not rsre.match(r, "xxx")
assert rsre.match(r, "xxxx")
@@ -114,7 +122,7 @@
assert rsre.match(r, "xxxxxxxxx")
def test_groupref_ignore(self):
- r, _ = get_code(r"(?i)(xx+)\1+$") # match non-prime numbers of x
+ r = get_code(r"(?i)(xx+)\1+$") # match non-prime numbers of x
assert not rsre.match(r, "xX")
assert not rsre.match(r, "xxX")
assert rsre.match(r, "Xxxx")
@@ -125,38 +133,38 @@
assert rsre.match(r, "xxxXxxxxx")
def test_in_ignore(self):
- r, _ = get_code(r"(?i)[a-f]")
+ r = get_code(r"(?i)[a-f]")
assert rsre.match(r, "b")
assert rsre.match(r, "C")
assert not rsre.match(r, "g")
- r, _ = get_code(r"(?i)[a-f]+$")
+ r = get_code(r"(?i)[a-f]+$")
assert rsre.match(r, "bCdEf")
assert not rsre.match(r, "g")
assert not rsre.match(r, "aaagaaa")
def test_not_literal(self):
- r, _ = get_code(r"[^a]")
+ r = get_code(r"[^a]")
assert rsre.match(r, "A")
assert not rsre.match(r, "a")
- r, _ = get_code(r"[^a]+$")
+ r = get_code(r"[^a]+$")
assert rsre.match(r, "Bx123")
assert not rsre.match(r, "--a--")
def test_not_literal_ignore(self):
- r, _ = get_code(r"(?i)[^a]")
+ r = get_code(r"(?i)[^a]")
assert rsre.match(r, "G")
assert not rsre.match(r, "a")
assert not rsre.match(r, "A")
- r, _ = get_code(r"(?i)[^a]+$")
+ r = get_code(r"(?i)[^a]+$")
assert rsre.match(r, "Gx123")
assert not rsre.match(r, "--A--")
def test_repeated_single_character_pattern(self):
- r, _ = get_code(r"foo(?:(?<=foo)x)+$")
+ r = get_code(r"foo(?:(?<=foo)x)+$")
assert rsre.match(r, "foox")
def test_flatten_marks(self):
- r, _ = get_code(r"a(b)c((d)(e))+$")
+ r = get_code(r"a(b)c((d)(e))+$")
res = rsre.match(r, "abcdedede")
assert res.flatten_marks() == [0, 9, 1, 2, 7, 9, 7, 8, 8, 9]
assert res.flatten_marks() == [0, 9, 1, 2, 7, 9, 7, 8, 8, 9]
Modified: pypy/branch/rsre2/pypy/rlib/rsre/test/test_search.py
==============================================================================
--- pypy/branch/rsre2/pypy/rlib/rsre/test/test_search.py (original)
+++ pypy/branch/rsre2/pypy/rlib/rsre/test/test_search.py Fri Jul 2 22:46:46 2010
@@ -1,11 +1,11 @@
import rsre
-from test_match import get_code
+from test_match import get_code, get_code_and_re
class TestSearch:
def test_code1(self):
- r_code1, _ = get_code(r'<item>\s*<title>(.*?)</title>')
+ r_code1 = get_code(r'<item>\s*<title>(.*?)</title>')
res = rsre.match(r_code1, "<item> <title>abc</title>def")
assert res is not None
#groups = state.create_regs(1)
@@ -13,7 +13,7 @@
#assert groups[1] == (18, 21)
def test_max_until_0_65535(self):
- r_code2, _ = get_code(r'<abc>(?:xy)*xy</abc>')
+ r_code2 = get_code(r'<abc>(?:xy)*xy</abc>')
res = rsre.match(r_code2, '<abc></abc>def')
assert res is None
res = rsre.match(r_code2, '<abc>xy</abc>def')
@@ -24,7 +24,7 @@
assert res is not None
def test_max_until_3_5(self):
- r_code2, r = get_code(r'<abc>(?:xy){3,5}xy</abc>')
+ r_code2, r = get_code_and_re(r'<abc>(?:xy){3,5}xy</abc>')
for i in range(8):
s = '<abc>' + 'xy'*i + '</abc>defdefdefdefdef'
assert (r.match(s) is not None) is (3 <= i-1 <= 5)
@@ -32,7 +32,7 @@
assert (res is not None) is (3 <= i-1 <= 5)
def test_min_until_0_65535(self):
- r_code2, _ = get_code(r'<abc>(?:xy)*?xy</abc>')
+ r_code2 = get_code(r'<abc>(?:xy)*?xy</abc>')
res = rsre.match(r_code2, '<abc></abc>def')
assert res is None
res = rsre.match(r_code2, '<abc>xy</abc>def')
@@ -43,7 +43,7 @@
assert res is not None
def test_min_until_3_5(self):
- r_code2, r = get_code(r'<abc>(?:xy){3,5}?xy</abc>')
+ r_code2, r = get_code_and_re(r'<abc>(?:xy){3,5}?xy</abc>')
for i in range(8):
s = '<abc>' + 'xy'*i + '</abc>defdefdefdefdef'
assert (r.match(s) is not None) is (3 <= i-1 <= 5)
@@ -51,27 +51,27 @@
assert (res is not None) is (3 <= i-1 <= 5)
def test_min_repeat_one(self):
- r_code3, _ = get_code(r'<abc>.{3,5}?y')
+ r_code3 = get_code(r'<abc>.{3,5}?y')
for i in range(8):
res = rsre.match(r_code3, '<abc>' + 'x'*i + 'y')
assert (res is not None) is (3 <= i <= 5)
def test_simple_group(self):
- r_code4, _ = get_code(r'<abc>(x.)</abc>')
+ r_code4 = get_code(r'<abc>(x.)</abc>')
res = rsre.match(r_code4, '<abc>xa</abc>def')
assert res is not None
assert res.get_mark(0) == 5
assert res.get_mark(1) == 7
def test_max_until_groups(self):
- r_code4, _ = get_code(r'<abc>(x.)*xy</abc>')
+ r_code4 = get_code(r'<abc>(x.)*xy</abc>')
res = rsre.match(r_code4, '<abc>xaxbxy</abc>def')
assert res is not None
assert res.get_mark(0) == 7
assert res.get_mark(1) == 9
def test_group_branch(self):
- r_code5, _ = get_code(r'<abc>(ab|c)</abc>')
+ r_code5 = get_code(r'<abc>(ab|c)</abc>')
res = rsre.match(r_code5, '<abc>ab</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (5, 7)
res = rsre.match(r_code5, '<abc>c</abc>def')
@@ -80,17 +80,17 @@
assert res is None
def test_group_branch_max_until(self):
- r_code6, _ = get_code(r'<abc>(ab|c)*a</abc>')
+ r_code6 = get_code(r'<abc>(ab|c)*a</abc>')
res = rsre.match(r_code6, '<abc>ccabcccaba</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (12, 14)
- r_code7, _ = get_code(r'<abc>((ab)|(c))*a</abc>')
+ r_code7 = get_code(r'<abc>((ab)|(c))*a</abc>')
res = rsre.match(r_code7, '<abc>ccabcccaba</abc>def')
assert (res.get_mark(0), res.get_mark(1)) == (12, 14)
assert (res.get_mark(2), res.get_mark(3)) == (12, 14)
assert (res.get_mark(4), res.get_mark(5)) == (11, 12)
def test_group_7(self):
- r_code7, r7 = get_code(r'<abc>((a)?(b))*</abc>')
+ r_code7, r7 = get_code_and_re(r'<abc>((a)?(b))*</abc>')
match = r7.match('<abc>bbbabbbb</abc>')
assert match.span(1) == (12, 13)
assert match.span(3) == (12, 13)
@@ -101,7 +101,7 @@
assert (res.get_mark(2), res.get_mark(3)) == (8, 9)
def test_group_branch_repeat_complex_case(self):
- r_code8, r8 = get_code(r'<abc>((a)|(b))*</abc>')
+ r_code8, r8 = get_code_and_re(r'<abc>((a)|(b))*</abc>')
match = r8.match('<abc>ab</abc>')
assert match.span(1) == (6, 7)
assert match.span(3) == (6, 7)
@@ -112,7 +112,7 @@
assert (res.get_mark(2), res.get_mark(3)) == (5, 6)
def test_minuntil_lastmark_restore(self):
- r_code9, r9 = get_code(r'(x|yz)+?(y)??c')
+ r_code9, r9 = get_code_and_re(r'(x|yz)+?(y)??c')
match = r9.match('xyzxc')
assert match.span(1) == (3, 4)
assert match.span(2) == (-1, -1)
@@ -121,7 +121,7 @@
assert (res.get_mark(2), res.get_mark(3)) == (-1, -1)
def test_minuntil_bug(self):
- r_code9, r9 = get_code(r'((x|yz)+?(y)??c)*')
+ r_code9, r9 = get_code_and_re(r'((x|yz)+?(y)??c)*')
match = r9.match('xycxyzxc')
assert match.span(2) == (6, 7)
#assert match.span(3) == (1, 2) --- bug of CPython
More information about the Pypy-commit
mailing list