You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2012/03/13 14:34:12 UTC

svn commit: r1300118 - /subversion/trunk/subversion/tests/cmdline/svntest/main.py

Author: hwright
Date: Tue Mar 13 13:34:12 2012
New Revision: 1300118

URL: http://svn.apache.org/viewvc?rev=1300118&view=rev
Log:
Fix a couple of issues from and make a few improvements on r1299972.

* subversion/tests/cmdline/svntest/main.py
  (_log_exception): Import traceback at the module level and don't bother with
    an intermediate string for exception info.  Allow callers to provide a
    message.
  (TestRunner): Update caller.

Modified:
    subversion/trunk/subversion/tests/cmdline/svntest/main.py

Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1300118&r1=1300117&r2=1300118&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Tue Mar 13 13:34:12 2012
@@ -36,7 +36,7 @@ import optparse
 import xml
 import urllib
 import logging
-import cStringIO as StringIO
+import traceback
 
 try:
   # Python >=3.0
@@ -994,14 +994,9 @@ def use_editor(func):
   os.environ['SVNTEST_EDITOR_FUNC'] = func
   os.environ['SVN_TEST_PYTHON'] = sys.executable
 
-def _log_exception():
-  import traceback
-
-  o = StringIO.StringIO()
-  ei = sys.exc_info()
-  traceback.print_exception(ei[0], ei[1], ei[2], None, o)
-  logger.warn(o.getvalue())
-  o.close()
+def _log_exception(fmt, *args):
+  logger.warn(fmt, *args)
+  logger.warn(traceback.format_exc())
 
 def mergeinfo_notify_line(revstart, revend, target=None):
   """Return an expected output line that describes the beginning of a
@@ -1346,10 +1341,10 @@ class TestRunner:
         ex_args = str(ex)
         logger.warn('CWD: %s' % os.getcwd())
         if ex_args:
-          logger.warn('EXCEPTION: %s: %s' % (ex.__class__.__name__, ex_args))
+          _log_exception('EXCEPTION: %s: %s',
+                          ex.__class__.__name__, ex_args)
         else:
-          logger.warn('EXCEPTION: %s' % ex.__class__.__name__)
-        _log_exception()
+          _log_exception('EXCEPTION: %s', ex.__class__.__name__)
     except KeyboardInterrupt:
       logger.error('Interrupted')
       sys.exit(0)
@@ -1360,8 +1355,7 @@ class TestRunner:
     except:
       result = svntest.testcase.RESULT_FAIL
       logger.warn('CWD: %s' % os.getcwd())
-      logger.warn('UNEXPECTED EXCEPTION:')
-      _log_exception()
+      _log_exception('UNEXPECTED EXCEPTION:')
 
     os.chdir(saved_dir)
     exit_code, result_text, result_benignity = self.pred.results(result)