[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