[py-svn] r33171 - in py/dist/py/code: . testing

arigo at codespeak.net arigo at codespeak.net
Wed Oct 11 18:00:50 CEST 2006


Author: arigo
Date: Wed Oct 11 18:00:46 2006
New Revision: 33171

Modified:
   py/dist/py/code/testing/test_excinfo.py
   py/dist/py/code/traceback2.py
Log:
Test and fix for a case where recursionindex() was confused.


Modified: py/dist/py/code/testing/test_excinfo.py
==============================================================================
--- py/dist/py/code/testing/test_excinfo.py	(original)
+++ py/dist/py/code/testing/test_excinfo.py	Wed Oct 11 18:00:46 2006
@@ -111,6 +111,23 @@
         recindex = traceback.recursionindex() 
         assert recindex == 3
 
+    def test_traceback_no_recursion_index(self):
+        def do_stuff():
+            raise RuntimeError
+        def reraise_me():
+            import sys
+            exc, val, tb = sys.exc_info()
+            raise exc, val, tb
+        def f(n):
+            try:
+                do_stuff()
+            except:
+                reraise_me()
+        excinfo = py.test.raises(RuntimeError, f, 8)
+        traceback = excinfo.traceback 
+        recindex = traceback.recursionindex() 
+        assert recindex is None
+
     def test_traceback_getcrashentry(self):
         def i():
             __tracebackhide__ = True

Modified: py/dist/py/code/traceback2.py
==============================================================================
--- py/dist/py/code/traceback2.py	(original)
+++ py/dist/py/code/traceback2.py	Wed Oct 11 18:00:46 2006
@@ -118,7 +118,7 @@
     def recursionindex(self):
         cache = {}
         for i, entry in py.builtin.enumerate(self):
-            key = entry.frame.code.path, entry.frame.lineno 
+            key = entry.frame.code.path, entry.lineno 
             #print "checking for recursion at", key
             l = cache.setdefault(key, [])
             if l: 



More information about the pytest-commit mailing list