Merged revisions 83140-83141 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83140 | alexander.belopolsky | 2010-07-25 11:02:55 -0400 (Sun, 25 Jul 2010) | 5 lines Issue #9315: Renamed test_trace to test_sys_settrace and test_profilehooks to test_sys_setprofile so that test_trace can be used for testing the trace module and for naming consistency. ........ r83141 | alexander.belopolsky | 2010-07-25 11:05:42 -0400 (Sun, 25 Jul 2010) | 1 line Corrected comments on where settrace and setprofile are tested. ........
This commit is contained in:
parent
5719c2f97e
commit
137e0b126d
|
@ -205,8 +205,8 @@ class SysModuleTest(unittest.TestCase):
|
|||
# can't check more than the type, as the user might have changed it
|
||||
self.assertIsInstance(sys.getdefaultencoding(), str)
|
||||
|
||||
# testing sys.settrace() is done in test_trace.py
|
||||
# testing sys.setprofile() is done in test_profile.py
|
||||
# testing sys.settrace() is done in test_sys_settrace.py
|
||||
# testing sys.setprofile() is done in test_sys_setprofile.py
|
||||
|
||||
def test_setcheckinterval(self):
|
||||
self.assertRaises(TypeError, sys.setcheckinterval)
|
||||
|
|
|
@ -2,7 +2,7 @@ import pprint
|
|||
import sys
|
||||
import unittest
|
||||
|
||||
from test import test_support
|
||||
from test import support
|
||||
|
||||
class TestGetProfile(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
@ -47,7 +47,7 @@ class HookWatcher:
|
|||
|
||||
def get_events(self):
|
||||
"""Remove calls to add_event()."""
|
||||
disallowed = [ident(self.add_event.im_func), ident(ident)]
|
||||
disallowed = [ident(self.add_event.__func__), ident(ident)]
|
||||
self.frames = None
|
||||
|
||||
return [item for item in self.events if item[2] not in disallowed]
|
||||
|
@ -110,7 +110,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_exception(self):
|
||||
def f(p):
|
||||
1./0
|
||||
1/0
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
(1, 'return', f_ident),
|
||||
|
@ -118,7 +118,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_caught_exception(self):
|
||||
def f(p):
|
||||
try: 1./0
|
||||
try: 1/0
|
||||
except: pass
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
|
@ -127,7 +127,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_caught_nested_exception(self):
|
||||
def f(p):
|
||||
try: 1./0
|
||||
try: 1/0
|
||||
except: pass
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
|
@ -136,7 +136,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_nested_exception(self):
|
||||
def f(p):
|
||||
1./0
|
||||
1/0
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
# This isn't what I expected:
|
||||
|
@ -147,7 +147,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_exception_in_except_clause(self):
|
||||
def f(p):
|
||||
1./0
|
||||
1/0
|
||||
def g(p):
|
||||
try:
|
||||
f(p)
|
||||
|
@ -166,7 +166,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_exception_propogation(self):
|
||||
def f(p):
|
||||
1./0
|
||||
1/0
|
||||
def g(p):
|
||||
try: f(p)
|
||||
finally: p.add_event("falling through")
|
||||
|
@ -181,8 +181,8 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_raise_twice(self):
|
||||
def f(p):
|
||||
try: 1./0
|
||||
except: 1./0
|
||||
try: 1/0
|
||||
except: 1/0
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
(1, 'return', f_ident),
|
||||
|
@ -190,7 +190,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_raise_reraise(self):
|
||||
def f(p):
|
||||
try: 1./0
|
||||
try: 1/0
|
||||
except: raise
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
|
@ -207,7 +207,7 @@ class ProfileHookTestCase(TestCaseBase):
|
|||
|
||||
def test_distant_exception(self):
|
||||
def f():
|
||||
1./0
|
||||
1/0
|
||||
def g():
|
||||
f()
|
||||
def h():
|
||||
|
@ -292,7 +292,7 @@ class ProfileSimulatorTestCase(TestCaseBase):
|
|||
|
||||
def test_basic_exception(self):
|
||||
def f(p):
|
||||
1./0
|
||||
1/0
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
(1, 'return', f_ident),
|
||||
|
@ -300,7 +300,7 @@ class ProfileSimulatorTestCase(TestCaseBase):
|
|||
|
||||
def test_caught_exception(self):
|
||||
def f(p):
|
||||
try: 1./0
|
||||
try: 1/0
|
||||
except: pass
|
||||
f_ident = ident(f)
|
||||
self.check_events(f, [(1, 'call', f_ident),
|
||||
|
@ -309,7 +309,7 @@ class ProfileSimulatorTestCase(TestCaseBase):
|
|||
|
||||
def test_distant_exception(self):
|
||||
def f():
|
||||
1./0
|
||||
1/0
|
||||
def g():
|
||||
f()
|
||||
def h():
|
||||
|
@ -340,7 +340,7 @@ def ident(function):
|
|||
if hasattr(function, "f_code"):
|
||||
code = function.f_code
|
||||
else:
|
||||
code = function.func_code
|
||||
code = function.__code__
|
||||
return code.co_firstlineno, code.co_name
|
||||
|
||||
|
||||
|
@ -357,7 +357,7 @@ def capture_events(callable, p=None):
|
|||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
raise test_support.TestFailed(
|
||||
raise support.TestFailed(
|
||||
'sys.setprofile() did not raise TypeError')
|
||||
|
||||
if p is None:
|
||||
|
@ -374,7 +374,7 @@ def show_events(callable):
|
|||
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(
|
||||
support.run_unittest(
|
||||
TestGetProfile,
|
||||
ProfileHookTestCase,
|
||||
ProfileSimulatorTestCase
|
|
@ -1,6 +1,6 @@
|
|||
# Testing the line trace facility.
|
||||
|
||||
from test import test_support
|
||||
from test import support
|
||||
import unittest
|
||||
import sys
|
||||
import difflib
|
||||
|
@ -98,7 +98,7 @@ def raises():
|
|||
def test_raise():
|
||||
try:
|
||||
raises()
|
||||
except Exception, exc:
|
||||
except Exception as exc:
|
||||
x = 1
|
||||
|
||||
test_raise.events = [(0, 'call'),
|
||||
|
@ -128,7 +128,7 @@ def _settrace_and_raise(tracefunc):
|
|||
def settrace_and_raise(tracefunc):
|
||||
try:
|
||||
_settrace_and_raise(tracefunc)
|
||||
except RuntimeError, exc:
|
||||
except RuntimeError as exc:
|
||||
pass
|
||||
|
||||
settrace_and_raise.events = [(2, 'exception'),
|
||||
|
@ -269,7 +269,7 @@ class TraceTestCase(unittest.TestCase):
|
|||
sys.settrace(tracer.trace)
|
||||
func()
|
||||
sys.settrace(None)
|
||||
self.compare_events(func.func_code.co_firstlineno,
|
||||
self.compare_events(func.__code__.co_firstlineno,
|
||||
tracer.events, events)
|
||||
|
||||
def run_test(self, func):
|
||||
|
@ -279,7 +279,7 @@ class TraceTestCase(unittest.TestCase):
|
|||
tracer = Tracer()
|
||||
func(tracer.trace)
|
||||
sys.settrace(None)
|
||||
self.compare_events(func.func_code.co_firstlineno,
|
||||
self.compare_events(func.__code__.co_firstlineno,
|
||||
tracer.events, func.events)
|
||||
|
||||
def set_and_retrieve_none(self):
|
||||
|
@ -379,9 +379,10 @@ class TraceTestCase(unittest.TestCase):
|
|||
(3, 'return')])
|
||||
|
||||
def test_16_blank_lines(self):
|
||||
exec("def f():\n" + "\n" * 256 + " pass")
|
||||
namespace = {}
|
||||
exec("def f():\n" + "\n" * 256 + " pass", namespace)
|
||||
self.run_and_compare(
|
||||
f,
|
||||
namespace["f"],
|
||||
[(0, 'call'),
|
||||
(257, 'line'),
|
||||
(257, 'return')])
|
||||
|
@ -401,7 +402,7 @@ class RaisingTraceFuncTestCase(unittest.TestCase):
|
|||
we're testing, so that the 'exception' trace event fires."""
|
||||
if self.raiseOnEvent == 'exception':
|
||||
x = 0
|
||||
y = 1 // x
|
||||
y = 1/x
|
||||
else:
|
||||
return 1
|
||||
|
||||
|
@ -410,7 +411,7 @@ class RaisingTraceFuncTestCase(unittest.TestCase):
|
|||
handled OK."""
|
||||
self.raiseOnEvent = event
|
||||
try:
|
||||
for i in xrange(sys.getrecursionlimit() + 1):
|
||||
for i in range(sys.getrecursionlimit() + 1):
|
||||
sys.settrace(self.trace)
|
||||
try:
|
||||
self.f()
|
||||
|
@ -434,12 +435,12 @@ class RaisingTraceFuncTestCase(unittest.TestCase):
|
|||
def test_trash_stack(self):
|
||||
def f():
|
||||
for i in range(5):
|
||||
print i # line tracing will raise an exception at this line
|
||||
print(i) # line tracing will raise an exception at this line
|
||||
|
||||
def g(frame, why, extra):
|
||||
if (why == 'line' and
|
||||
frame.f_lineno == f.func_code.co_firstlineno + 2):
|
||||
raise RuntimeError, "i am crashing"
|
||||
frame.f_lineno == f.__code__.co_firstlineno + 2):
|
||||
raise RuntimeError("i am crashing")
|
||||
return g
|
||||
|
||||
sys.settrace(g)
|
||||
|
@ -469,7 +470,7 @@ class JumpTracer:
|
|||
self.done = False
|
||||
|
||||
def trace(self, frame, event, arg):
|
||||
if not self.done and frame.f_code == self.function.func_code:
|
||||
if not self.done and frame.f_code == self.function.__code__:
|
||||
firstLine = frame.f_code.co_firstlineno
|
||||
if event == 'line' and frame.f_lineno == firstLine + self.jumpFrom:
|
||||
# Cope with non-integer self.jumpTo (because of
|
||||
|
@ -557,7 +558,7 @@ def no_jump_too_far_forwards(output):
|
|||
try:
|
||||
output.append(2)
|
||||
output.append(3)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('after' in str(e))
|
||||
|
||||
no_jump_too_far_forwards.jump = (3, 6)
|
||||
|
@ -567,7 +568,7 @@ def no_jump_too_far_backwards(output):
|
|||
try:
|
||||
output.append(2)
|
||||
output.append(3)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('before' in str(e))
|
||||
|
||||
no_jump_too_far_backwards.jump = (3, -1)
|
||||
|
@ -597,7 +598,7 @@ no_jump_to_except_2.output = [True]
|
|||
def no_jump_to_except_3(output):
|
||||
try:
|
||||
output.append(2)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('except' in str(e))
|
||||
|
||||
no_jump_to_except_3.jump = (2, 3)
|
||||
|
@ -606,7 +607,7 @@ no_jump_to_except_3.output = [True]
|
|||
def no_jump_to_except_4(output):
|
||||
try:
|
||||
output.append(2)
|
||||
except (ValueError, RuntimeError), e:
|
||||
except (ValueError, RuntimeError) as e:
|
||||
output.append('except' in str(e))
|
||||
|
||||
no_jump_to_except_4.jump = (2, 3)
|
||||
|
@ -617,7 +618,7 @@ def no_jump_forwards_into_block(output):
|
|||
output.append(2)
|
||||
for i in 1, 2:
|
||||
output.append(4)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('into' in str(e))
|
||||
|
||||
no_jump_forwards_into_block.jump = (2, 4)
|
||||
|
@ -628,7 +629,7 @@ def no_jump_backwards_into_block(output):
|
|||
for i in 1, 2:
|
||||
output.append(3)
|
||||
output.append(4)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('into' in str(e))
|
||||
|
||||
no_jump_backwards_into_block.jump = (4, 3)
|
||||
|
@ -641,7 +642,7 @@ def no_jump_into_finally_block(output):
|
|||
x = 1
|
||||
finally:
|
||||
output.append(6)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('finally' in str(e))
|
||||
|
||||
no_jump_into_finally_block.jump = (4, 6)
|
||||
|
@ -654,7 +655,7 @@ def no_jump_out_of_finally_block(output):
|
|||
finally:
|
||||
output.append(5)
|
||||
output.append(6)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('finally' in str(e))
|
||||
|
||||
no_jump_out_of_finally_block.jump = (5, 1)
|
||||
|
@ -664,7 +665,7 @@ no_jump_out_of_finally_block.output = [3, True]
|
|||
def no_jump_to_non_integers(output):
|
||||
try:
|
||||
output.append(2)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
output.append('integer' in str(e))
|
||||
|
||||
no_jump_to_non_integers.jump = (2, "Spam")
|
||||
|
@ -676,14 +677,14 @@ def no_jump_without_trace_function():
|
|||
try:
|
||||
previous_frame = sys._getframe().f_back
|
||||
previous_frame.f_lineno = previous_frame.f_lineno
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
# This is the exception we wanted; make sure the error message
|
||||
# talks about trace functions.
|
||||
if 'trace' not in str(e):
|
||||
raise
|
||||
else:
|
||||
# Something's wrong - the expected exception wasn't raised.
|
||||
raise RuntimeError, "Trace-function-less jump failed to fail"
|
||||
raise RuntimeError("Trace-function-less jump failed to fail")
|
||||
|
||||
|
||||
class JumpTestCase(unittest.TestCase):
|
||||
|
@ -768,18 +769,18 @@ output.append(3)
|
|||
output.append(4)
|
||||
""", "<fake module>", "exec")
|
||||
class fake_function:
|
||||
func_code = code
|
||||
__code__ = code
|
||||
jump = (2, 0)
|
||||
tracer = JumpTracer(fake_function)
|
||||
sys.settrace(tracer.trace)
|
||||
namespace = {"output": []}
|
||||
exec code in namespace
|
||||
exec(code, namespace)
|
||||
sys.settrace(None)
|
||||
self.compare_jump_output([2, 3, 2, 3, 4], namespace["output"])
|
||||
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(
|
||||
support.run_unittest(
|
||||
TraceTestCase,
|
||||
RaisingTraceFuncTestCase,
|
||||
JumpTestCase
|
Loading…
Reference in New Issue