File nose-1.2.1-plugin-failuredetail-no-tb.patch of Package python-nose

commit f87c831164b3ae4193d025f07b20bfcc7d131a02
Author: Sascha Peilicke <saschpe@suse.de>
Date:   Fri Jan 18 11:22:06 2013 +0100

    Fix formatFailure expection if missing tb in exc_info
    
    The FailureDetail plugin should not fail in formatFailure if no
    traceback is in the exc_info tupple ('err' parameter). This happens,
    e.g. when used with testtools:
    
    Traceback (most recent call last):
      File "/usr/lib64/python2.6/site-packages/nose/case.py", line 133, in run
        self.runTest(result)
      File "/usr/lib64/python2.6/site-packages/nose/case.py", line 151, in runTest
        test(result)
      File "/usr/lib64/python2.6/unittest.py", line 300, in __call__
        return self.run(*args, **kwds)
      File "/usr/lib64/python2.6/site-packages/testtools/testcase.py", line 518, in run
        return self.__RunTest(self, self.exception_handlers).run(result)
      File "/usr/lib64/python2.6/site-packages/testtools/runtest.py", line 74, in run
        return self._run_one(actual_result)
      File "/usr/lib64/python2.6/site-packages/testtools/runtest.py", line 88, in _run_one
        return self._run_prepared_result(ExtendedToOriginalDecorator(result))
      File "/usr/lib64/python2.6/site-packages/testtools/runtest.py", line 107, in _run_prepared_result
        handler(self.case, self.result, e)
      File "/usr/lib64/python2.6/site-packages/testtools/testcase.py", line 494, in _report_failure
        result.addFailure(self, details=self.getDetails())
      File "/usr/lib64/python2.6/site-packages/testtools/testresult/real.py", line 605, in addFailure
        return self.decorated.addFailure(test, err)
      File "/usr/lib64/python2.6/site-packages/nose/proxy.py", line 146, in addFailure
        formatted = plugins.formatFailure(self.test, err)
      File "/usr/lib64/python2.6/site-packages/nose/plugins/manager.py", line 99, in __call__
        return self.call(*arg, **kw)
      File "/usr/lib64/python2.6/site-packages/nose/plugins/manager.py", line 141, in chain
        result = meth(*arg, **kw)
      File "/usr/lib64/python2.6/site-packages/nose/plugins/failuredetail.py", line 41, in formatFailure
        tbinfo = inspect_traceback(tb)
      File "/usr/lib64/python2.6/site-packages/nose/inspector.py", line 26, in inspect_traceback
        while tb.tb_next:
    AttributeError: 'NoneType' object has no attribute 'tb_next'

diff --git a/AUTHORS b/AUTHORS
index b852772..dce5b1c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -23,3 +23,4 @@ Peter Bengtsson
 Gary Donovan
 Brendan McCollam
 Erik Rose
+Sascha Peilicke
diff --git a/nose/plugins/failuredetail.py b/nose/plugins/failuredetail.py
index 19569b5..4c0729c 100644
--- a/nose/plugins/failuredetail.py
+++ b/nose/plugins/failuredetail.py
@@ -38,6 +38,10 @@ class FailureDetail(Plugin):
         """Add detail from traceback inspection to error message of a failure.
         """
         ec, ev, tb = err
-        tbinfo = inspect_traceback(tb)
+        tbinfo, str_ev = None, str(ev)
+        if tb:
+            tbinfo = inspect_traceback(tb)
+            str_ev = '\n'.join([str(ev), tbinfo])
         test.tbinfo = tbinfo
-        return (ec, '\n'.join([str(ev), tbinfo]), tb)
+        return (ec, str_ev, tb)
+
openSUSE Build Service is sponsored by