[pypy-svn] r38687 - in pypy/dist/pypy: module/_sre/test rlib/rsre

arigo at codespeak.net arigo at codespeak.net
Tue Feb 13 14:05:24 CET 2007


Author: arigo
Date: Tue Feb 13 14:05:22 2007
New Revision: 38687

Modified:
   pypy/dist/pypy/module/_sre/test/test_app_sre.py
   pypy/dist/pypy/rlib/rsre/rsre_core.py
Log:
Squashed another

           _________     o o
          /         \   / /
      --sre groups bug----
         / \ / \ / \ / \



Modified: pypy/dist/pypy/module/_sre/test/test_app_sre.py
==============================================================================
--- pypy/dist/pypy/module/_sre/test/test_app_sre.py	(original)
+++ pypy/dist/pypy/module/_sre/test/test_app_sre.py	Tue Feb 13 14:05:22 2007
@@ -194,7 +194,7 @@
         m = re.match('hel+', a)
         assert m.end() == 4
 
-    def test_group_bug(self):
+    def test_group_bugs(self):
         import re
         r = re.compile(r"""
             \&(?:
@@ -218,6 +218,16 @@
                                           'named': None,
                                           'braced': None,
                                           'invalid': None}
+        matches = list(r.finditer('&who likes &{what)'))   # note the ')'
+        assert len(matches) == 2
+        assert matches[0].groupdict() == {'escaped': None,
+                                          'named': 'who',
+                                          'braced': None,
+                                          'invalid': None}
+        assert matches[1].groupdict() == {'escaped': None,
+                                          'named': None,
+                                          'braced': None,
+                                          'invalid': ''}
 
 
 class AppTestSreScanner:

Modified: pypy/dist/pypy/rlib/rsre/rsre_core.py
==============================================================================
--- pypy/dist/pypy/rlib/rsre/rsre_core.py	(original)
+++ pypy/dist/pypy/rlib/rsre/rsre_core.py	Tue Feb 13 14:05:22 2007
@@ -69,7 +69,7 @@
         self.marks, self.lastindex = self.marks_stack.pop()
 
     def marks_pop_keep(self):
-        self.marks, self.lastindex = self.marks_stack[-1]
+        self.marks[:], self.lastindex = self.marks_stack[-1]
 
     def marks_pop_discard(self):
         self.marks_stack.pop()



More information about the Pypy-commit mailing list