|
|
|
@ -242,6 +242,31 @@ class TracebackFormatTests(unittest.TestCase): |
|
|
|
|
|
|
|
self.assertEqual(ststderr.getvalue(), "".join(stfmt)) |
|
|
|
|
|
|
|
def test_print_stack(self): |
|
|
|
def prn(): |
|
|
|
traceback.print_stack() |
|
|
|
with captured_output("stderr") as stderr: |
|
|
|
prn() |
|
|
|
lineno = prn.__code__.co_firstlineno |
|
|
|
self.assertEqual(stderr.getvalue().splitlines()[-4:], [ |
|
|
|
' File "%s", line %d, in test_print_stack' % (__file__, lineno+3), |
|
|
|
' prn()', |
|
|
|
' File "%s", line %d, in prn' % (__file__, lineno+1), |
|
|
|
' traceback.print_stack()', |
|
|
|
]) |
|
|
|
|
|
|
|
def test_format_stack(self): |
|
|
|
def fmt(): |
|
|
|
return traceback.format_stack() |
|
|
|
result = fmt() |
|
|
|
lineno = fmt.__code__.co_firstlineno |
|
|
|
self.assertEqual(result[-2:], [ |
|
|
|
' File "%s", line %d, in test_format_stack\n' |
|
|
|
' result = fmt()\n' % (__file__, lineno+2), |
|
|
|
' File "%s", line %d, in fmt\n' |
|
|
|
' return traceback.format_stack()\n' % (__file__, lineno+1), |
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
cause_message = ( |
|
|
|
"\nThe above exception was the direct cause " |
|
|
|
@ -443,6 +468,16 @@ class MiscTracebackCases(unittest.TestCase): |
|
|
|
# Local variable dict should now be empty. |
|
|
|
self.assertEqual(len(inner_frame.f_locals), 0) |
|
|
|
|
|
|
|
def test_extract_stack(self): |
|
|
|
def extract(): |
|
|
|
return traceback.extract_stack() |
|
|
|
result = extract() |
|
|
|
lineno = extract.__code__.co_firstlineno |
|
|
|
self.assertEqual(result[-2:], [ |
|
|
|
(__file__, lineno+2, 'test_extract_stack', 'result = extract()'), |
|
|
|
(__file__, lineno+1, 'extract', 'return traceback.extract_stack()'), |
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
def test_main(): |
|
|
|
run_unittest(__name__) |
|
|
|
|