SVN: zope.testing/trunk/ Clean up support for displaying tracebacks with supplements by turning it into

Christian Theune <[email protected]>
Newsgroups gmane.comp.web.zope.zope3.cvs
Message-ID <[email protected]>
Log message for revision 101909:
  Clean up support for displaying tracebacks with supplements by turning it into
  an always-enabled feature and making the dependency on zope.exceptions
  explicit.
  

Changed:
  U   zope.testing/trunk/CHANGES.txt
  U   zope.testing/trunk/setup.py
  U   zope.testing/trunk/src/zope/testing/__init__.py
  U   zope.testing/trunk/src/zope/testing/testrunner/runner.py
  A   zope.testing/trunk/src/zope/testing/testrunner/tb_format.py
  U   zope.testing/trunk/src/zope/testing/testrunner/testrunner-edge-cases.txt
  U   zope.testing/trunk/src/zope/testing/testrunner/testrunner-errors.txt
  U   zope.testing/trunk/src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_e.py
  A   zope.testing/trunk/src/zope/testing/testrunner/testrunner-tb-format.txt

-=-
Modified: zope.testing/trunk/CHANGES.txt
===================================================================
--- zope.testing/trunk/CHANGES.txt	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/CHANGES.txt	2009-07-14 15:23:20 UTC (rev 101909)
@@ -4,6 +4,10 @@
 3.7.7 (unreleased)
 ==================
 
+- Clean up support for displaying tracebacks with supplements by turning it
+  into an always-enabled feature and making the dependency on zope.exceptions
+  explicit.
+
 - Fix #251759: Test runner descended into directories that aren't Python
   packages.
 

Modified: zope.testing/trunk/setup.py
===================================================================
--- zope.testing/trunk/setup.py	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/setup.py	2009-07-14 15:23:20 UTC (rev 101909)
@@ -23,8 +23,8 @@
     extra = dict(
         namespace_packages=['zope',],
         install_requires = ['setuptools',
+                            'zope.exceptions',
                             'zope.interface'],
-        extras_require={'zope_tracebacks': 'zope.exceptions'},
         entry_points = {'console_scripts': ['zope-testrunner = zope.testing.testrunner:run',]},
         include_package_data = True,
         zip_safe = False,

Modified: zope.testing/trunk/src/zope/testing/__init__.py
===================================================================
--- zope.testing/trunk/src/zope/testing/__init__.py	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/src/zope/testing/__init__.py	2009-07-14 15:23:20 UTC (rev 101909)
@@ -11,20 +11,3 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Set up testing environment
-
-$Id$
-"""
-import os
-
-def patchTracebackModule():
-    """Use the ExceptionFormatter to show more info in tracebacks.
-    """
-    from zope.exceptions.exceptionformatter import format_exception
-    import traceback
-    traceback.format_exception = format_exception
-
-# Don't use the new exception formatter by default, since it
-# doesn't show filenames.
-if os.environ.get('NEW_ZOPE_EXCEPTION_FORMATTER', 0):
-    patchTracebackModule()

Modified: zope.testing/trunk/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/trunk/src/zope/testing/testrunner/runner.py	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/src/zope/testing/testrunner/runner.py	2009-07-14 15:23:20 UTC (rev 101909)
@@ -47,7 +47,9 @@
 import zope.testing.testrunner.process
 import zope.testing.testrunner.interfaces
 import zope.testing.testrunner.debug
+import zope.testing.testrunner.tb_format
 
+
 PYREFCOUNT_PATTERN = re.compile('\[[0-9]+ refs\]')
 
 is_jython = sys.platform.startswith('java')
@@ -189,6 +191,7 @@
         self.features.append(zope.testing.testrunner.filter.Filter(self))
         self.features.append(zope.testing.testrunner.listing.Listing(self))
         self.features.append(zope.testing.testrunner.statistics.Statistics(self))
+        self.features.append(zope.testing.testrunner.tb_format.Traceback(self))
 
         # Remove all features that aren't activated
         self.features = [f for f in self.features if f.active]

Added: zope.testing/trunk/src/zope/testing/testrunner/tb_format.py
===================================================================
--- zope.testing/trunk/src/zope/testing/testrunner/tb_format.py	                        (rev 0)
+++ zope.testing/trunk/src/zope/testing/testrunner/tb_format.py	2009-07-14 15:23:20 UTC (rev 101909)
@@ -0,0 +1,40 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Set up testing environment
+
+$Id: __init__.py 68482 2006-06-04 14:58:55Z jim $
+"""
+
+import os
+import traceback
+import zope.exceptions.exceptionformatter
+import zope.testing.testrunner.feature
+
+
+def format_exception(t, v, tb, limit=None):
+    fmt = zope.exceptions.exceptionformatter.TextExceptionFormatter(
+        limit=None, with_filenames=True)
+    return fmt.formatException(t, v, tb)
+
+
+class Traceback(zope.testing.testrunner.feature.Feature):
+
+    active = True
+
+    def global_setup(self):
+        self.old_format = traceback.format_exception
+        traceback.format_exception = format_exception
+
+    def global_teardown(self):
+        traceback.format_exception = self.old_format


Property changes on: zope.testing/trunk/src/zope/testing/testrunner/tb_format.py
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: zope.testing/trunk/src/zope/testing/testrunner/testrunner-edge-cases.txt
===================================================================
--- zope.testing/trunk/src/zope/testing/testrunner/testrunner-edge-cases.txt	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/src/zope/testing/testrunner/testrunner-edge-cases.txt	2009-07-14 15:23:20 UTC (rev 101909)
@@ -28,6 +28,7 @@
     <BLANKLINE>
     Module: sampletestsf
     <BLANKLINE>
+    Traceback (most recent call last):
     ImportError: No module named sampletestsf
     ...
 
@@ -454,6 +455,7 @@
     <BLANKLINE>
     Module: sample1.sampletests_none_suite
     <BLANKLINE>
+    Traceback (most recent call last):
     TypeError: Invalid test_suite, None, in sample1.sampletests_none_suite
     <BLANKLINE>
     <BLANKLINE>
@@ -472,6 +474,7 @@
     <BLANKLINE>
     Module: sample1.sampletests_none_test
     <BLANKLINE>
+    Traceback (most recent call last):
     TypeError: ...
     <BLANKLINE>
     <BLANKLINE>

Modified: zope.testing/trunk/src/zope/testing/testrunner/testrunner-errors.txt
===================================================================
--- zope.testing/trunk/src/zope/testing/testrunner/testrunner-errors.txt	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/src/zope/testing/testrunner/testrunner-errors.txt	2009-07-14 15:23:20 UTC (rev 101909)
@@ -62,6 +62,7 @@
         g()
       File "testrunner-ex/sample2/sampletests_e.py", line 24, in g
         x = y + 1
+       - __traceback_info__: I don't know what Y should be.
     NameError: global name 'y' is not defined
     <BLANKLINE>
     <BLANKLINE>
@@ -148,6 +149,7 @@
         g()
       File "testrunner-ex/sample2/sampletests_e.py", line 24, in g
         x = y + 1
+       - __traceback_info__: I don't know what Y should be.
     NameError: global name 'y' is not defined
     <BLANKLINE>
     ...
@@ -240,6 +242,7 @@
         g()
       File "testrunner-ex/sample2/sampletests_e.py", line 24, in g
         x = y + 1
+       - __traceback_info__: I don't know what Y should be.
     NameError: global name 'y' is not defined
     <BLANKLINE>
         5/56 (8.9%)##r##
@@ -707,6 +710,7 @@
     <BLANKLINE>
     Module: sample2.sampletests_i
     <BLANKLINE>
+    Traceback (most recent call last):
       File "testrunner-ex/sample2/sampletests_i.py", line 1
         importx unittest
                        ^
@@ -723,6 +727,7 @@
     <BLANKLINE>
     Module: sample2.sample22.sampletests_i
     <BLANKLINE>
+    Traceback (most recent call last):
     AttributeError: 'module' object has no attribute 'test_suite'
     <BLANKLINE>
     <BLANKLINE>

Modified: zope.testing/trunk/src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_e.py
===================================================================
--- zope.testing/trunk/src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_e.py	2009-07-14 15:01:37 UTC (rev 101908)
+++ zope.testing/trunk/src/zope/testing/testrunner/testrunner-ex/sample2/sampletests_e.py	2009-07-14 15:23:20 UTC (rev 101909)
@@ -21,6 +21,7 @@
 def g():
     x = 1
     x = x + 1
+    __traceback_info__ = "I don't know what Y should be."
     x = y + 1
     x = x + 1
 


Property changes on: zope.testing/trunk/src/zope/testing/testrunner/testrunner-tb-format.txt
___________________________________________________________________
Added: svn:eol-style
   + native
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.