Handle exc_info is True. This fixes #735

This commit is contained in:
Armin Ronacher 2016-02-12 09:48:54 -08:00
parent 246b3ff591
commit d6caa99bfd
3 changed files with 20 additions and 1 deletions

View File

@ -2,6 +2,7 @@ Version 5.10.3
--------------
* Improved double error check
* Restored support for exc_info is True.
Version 5.10.2
--------------

View File

@ -724,7 +724,7 @@ class Client(object):
``kwargs`` are passed through to ``.capture``.
"""
if exc_info is None:
if exc_info is None or exc_info is True:
exc_info = sys.exc_info()
return self.capture(
'raven.events.Exception', exc_info=exc_info, **kwargs)

View File

@ -296,6 +296,24 @@ class ClientTest(TestCase):
self.assertEquals(frame['function'], 'test_exception_event')
self.assertTrue('timestamp' in event)
def test_exception_event_true_exc_info(self):
try:
raise ValueError('foo')
except ValueError:
self.client.captureException(exc_info=True)
self.assertEquals(len(self.client.events), 1)
event = self.client.events.pop(0)
self.assertEquals(event['message'], 'ValueError: foo')
self.assertTrue('exception' in event)
exc = event['exception']['values'][0]
stacktrace = exc['stacktrace']
self.assertEquals(len(stacktrace['frames']), 1)
frame = stacktrace['frames'][0]
self.assertEquals(frame['abs_path'], __file__.replace('.pyc', '.py'))
self.assertEquals(frame['filename'], 'tests/base/tests.py')
self.assertEquals(frame['module'], __name__)
def test_decorator_preserves_function(self):
@self.client.capture_exceptions
def test1():