[Python-checkins] python/dist/src/Lib/test test_trace.py,1.4,1.5
mwh@users.sourceforge.net
mwh@users.sourceforge.net
Fri, 08 Nov 2002 05:08:48 -0800
Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv14898/Lib/test
Modified Files:
test_trace.py
Log Message:
This is Richie Hindle's patch:
[ 631276 ] Exceptions raised by line trace function
It conflicted with the patches from Armin I just checked it, so I had
to so some bits by hand.
Index: test_trace.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_trace.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** test_trace.py 2 Oct 2002 13:13:46 -0000 1.4
--- test_trace.py 8 Nov 2002 13:08:45 -0000 1.5
***************
*** 179,192 ****
class RaisingTraceFuncTestCase(unittest.TestCase):
! def test_it(self):
! def tr(frame, event, arg):
raise ValueError # just something that isn't RuntimeError
! def f():
return 1
try:
for i in xrange(sys.getrecursionlimit() + 1):
! sys.settrace(tr)
try:
! f()
except ValueError:
pass
--- 179,208 ----
class RaisingTraceFuncTestCase(unittest.TestCase):
! def trace(self, frame, event, arg):
! """A trace function that raises an exception in response to a
! specific trace event."""
! if event == self.raiseOnEvent:
raise ValueError # just something that isn't RuntimeError
! else:
! return self.trace
!
! def f(self):
! """The function to trace; raises an exception if that's the case
! we're testing, so that the 'exception' trace event fires."""
! if self.raiseOnEvent == 'exception':
! x = 0
! y = 1/x
! else:
return 1
+
+ def run_test_for_event(self, event):
+ """Tests that an exception raised in response to the given event is
+ handled OK."""
+ self.raiseOnEvent = event
try:
for i in xrange(sys.getrecursionlimit() + 1):
! sys.settrace(self.trace)
try:
! self.f()
except ValueError:
pass
***************
*** 195,199 ****
except RuntimeError:
self.fail("recursion counter not reset")
!
def test_main():
--- 211,224 ----
except RuntimeError:
self.fail("recursion counter not reset")
!
! # Test the handling of exceptions raised by each kind of trace event.
! def test_call(self):
! self.run_test_for_event('call')
! def test_line(self):
! self.run_test_for_event('line')
! def test_return(self):
! self.run_test_for_event('return')
! def test_exception(self):
! self.run_test_for_event('exception')
def test_main():