[Python-checkins] r79264 - in python/branches/py3k: Lib/test/test_unittest.py Lib/unittest/__init__.py Lib/unittest/__main__.py Lib/unittest/case.py Lib/unittest/loader.py Lib/unittest/main.py Lib/unittest/result.py Lib/unittest/runner.py Lib/unittest/suite.py Lib/unittest/util.py

benjamin.peterson python-checkins at python.org
Mon Mar 22 01:15:53 CET 2010


Author: benjamin.peterson
Date: Mon Mar 22 01:15:53 2010
New Revision: 79264
Log:
Merged revisions 79263 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk
........
 r79263 | michael.foord | 2010年03月21日 19:06:30 -0500 (2010年3月21日) | 1 line
 
 Issue 7815. __unittest in module globals trims frames from reported stacktraces in unittest.
........
Modified:
 python/branches/py3k/ (props changed)
 python/branches/py3k/Lib/test/test_unittest.py
 python/branches/py3k/Lib/unittest/__init__.py
 python/branches/py3k/Lib/unittest/__main__.py
 python/branches/py3k/Lib/unittest/case.py
 python/branches/py3k/Lib/unittest/loader.py
 python/branches/py3k/Lib/unittest/main.py
 python/branches/py3k/Lib/unittest/result.py
 python/branches/py3k/Lib/unittest/runner.py
 python/branches/py3k/Lib/unittest/suite.py
 python/branches/py3k/Lib/unittest/util.py
Modified: python/branches/py3k/Lib/test/test_unittest.py
==============================================================================
--- python/branches/py3k/Lib/test/test_unittest.py	(original)
+++ python/branches/py3k/Lib/test/test_unittest.py	Mon Mar 22 01:15:53 2010
@@ -2096,6 +2096,16 @@
 'Tests getDescription() for a method with a longer '
 'docstring.'))
 
+ def testStackFrameTrimming(self):
+ class Frame(object):
+ class tb_frame(object):
+ f_globals = {}
+ result = unittest.TestResult()
+ self.assertFalse(result._is_relevant_tb_level(Frame))
+
+ Frame.tb_frame.f_globals['__unittest'] = True
+ self.assertTrue(result._is_relevant_tb_level(Frame))
+
 classDict = dict(unittest.TestResult.__dict__)
 for m in ('addSkip', 'addExpectedFailure', 'addUnexpectedSuccess',
 '__init__'):
Modified: python/branches/py3k/Lib/unittest/__init__.py
==============================================================================
--- python/branches/py3k/Lib/unittest/__init__.py	(original)
+++ python/branches/py3k/Lib/unittest/__init__.py	Mon Mar 22 01:15:53 2010
@@ -64,3 +64,5 @@
 
 # deprecated
 _TextTestResult = TextTestResult
+
+__unittest = True
Modified: python/branches/py3k/Lib/unittest/__main__.py
==============================================================================
--- python/branches/py3k/Lib/unittest/__main__.py	(original)
+++ python/branches/py3k/Lib/unittest/__main__.py	Mon Mar 22 01:15:53 2010
@@ -4,5 +4,8 @@
 if sys.argv[0].endswith("__main__.py"):
 sys.argv[0] = "unittest"
 
+__unittest = True
+
+
 from .main import main
 main(module=None)
Modified: python/branches/py3k/Lib/unittest/case.py
==============================================================================
--- python/branches/py3k/Lib/unittest/case.py	(original)
+++ python/branches/py3k/Lib/unittest/case.py	Mon Mar 22 01:15:53 2010
@@ -11,6 +11,8 @@
 from .util import (strclass, safe_repr, sorted_list_difference,
 unorderable_list_difference)
 
+__unittest = True
+
 
 class SkipTest(Exception):
 """
Modified: python/branches/py3k/Lib/unittest/loader.py
==============================================================================
--- python/branches/py3k/Lib/unittest/loader.py	(original)
+++ python/branches/py3k/Lib/unittest/loader.py	Mon Mar 22 01:15:53 2010
@@ -10,6 +10,7 @@
 
 from . import case, suite, util
 
+__unittest = True
 
 # what about .pyc or .pyo (etc)
 # we would need to avoid loading the same tests multiple times
Modified: python/branches/py3k/Lib/unittest/main.py
==============================================================================
--- python/branches/py3k/Lib/unittest/main.py	(original)
+++ python/branches/py3k/Lib/unittest/main.py	Mon Mar 22 01:15:53 2010
@@ -6,6 +6,8 @@
 
 from . import loader, runner
 
+__unittest = True
+
 
 USAGE_AS_MAIN = """\
 Usage: %(progName)s [options] [tests]
Modified: python/branches/py3k/Lib/unittest/result.py
==============================================================================
--- python/branches/py3k/Lib/unittest/result.py	(original)
+++ python/branches/py3k/Lib/unittest/result.py	Mon Mar 22 01:15:53 2010
@@ -4,6 +4,8 @@
 
 from . import util
 
+__unittest = True
+
 
 class TestResult(object):
 """Holder for test result information.
@@ -98,11 +100,7 @@
 return ''.join(traceback.format_exception(exctype, value, tb))
 
 def _is_relevant_tb_level(self, tb):
- globs = tb.tb_frame.f_globals
- is_relevant = '__name__' in globs and \
- globs["__name__"].startswith("unittest")
- del globs
- return is_relevant
+ return '__unittest' in tb.tb_frame.f_globals
 
 def _count_relevant_tb_levels(self, tb):
 length = 0
Modified: python/branches/py3k/Lib/unittest/runner.py
==============================================================================
--- python/branches/py3k/Lib/unittest/runner.py	(original)
+++ python/branches/py3k/Lib/unittest/runner.py	Mon Mar 22 01:15:53 2010
@@ -5,6 +5,8 @@
 
 from . import result
 
+__unittest = True
+
 
 class _WritelnDecorator(object):
 """Used to decorate file-like objects with a handy 'writeln' method"""
Modified: python/branches/py3k/Lib/unittest/suite.py
==============================================================================
--- python/branches/py3k/Lib/unittest/suite.py	(original)
+++ python/branches/py3k/Lib/unittest/suite.py	Mon Mar 22 01:15:53 2010
@@ -5,6 +5,8 @@
 from . import case
 from . import util
 
+__unittest = True
+
 
 class BaseTestSuite(object):
 """A simple test suite that doesn't provide class or module shared fixtures.
Modified: python/branches/py3k/Lib/unittest/util.py
==============================================================================
--- python/branches/py3k/Lib/unittest/util.py	(original)
+++ python/branches/py3k/Lib/unittest/util.py	Mon Mar 22 01:15:53 2010
@@ -1,5 +1,8 @@
 """Various utility functions."""
 
+__unittest = True
+
+
 def safe_repr(obj):
 try:
 return repr(obj)


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /