[Python-checkins] cpython (2.7): Issue #25108: Backported tests for traceback functions print_stack(),
serhiy.storchaka
python-checkins at python.org
Fri Sep 18 09:10:18 CEST 2015
https://hg.python.org/cpython/rev/f6125114b55f
changeset: 98034:f6125114b55f
branch: 2.7
parent: 98024:64d48786d6b0
user: Serhiy Storchaka <storchaka at gmail.com>
date: Fri Sep 18 10:09:29 2015 +0300
summary:
Issue #25108: Backported tests for traceback functions print_stack(),
format_stack(), and extract_stack() called without arguments.
files:
Lib/test/test_traceback.py | 46 ++++++++++++++++++++++++-
1 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -4,7 +4,8 @@
import sys
import unittest
from imp import reload
-from test.test_support import run_unittest, is_jython, Error, cpython_only
+from test.test_support import (run_unittest, is_jython, Error, cpython_only,
+ captured_output)
import traceback
@@ -206,9 +207,50 @@
self.assertTrue(location.startswith(' File'))
self.assertTrue(source_line.startswith(' raise'))
+ 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),
+ ])
+
+
+class MiscTracebackCases(unittest.TestCase):
+ #
+ # Check non-printing functions in traceback module
+ #
+
+ 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(TracebackCases, TracebackFormatTests)
+ run_unittest(TracebackCases, TracebackFormatTests, MiscTracebackCases)
if __name__ == "__main__":
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list