diff --git a/CHANGES b/CHANGES index 8622dcb8..ff40088a 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ Version 5.10.3 -------------- * Improved double error check +* Restored support for exc_info is True. Version 5.10.2 -------------- diff --git a/raven/base.py b/raven/base.py index c234d6bb..fdd96d75 100644 --- a/raven/base.py +++ b/raven/base.py @@ -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) diff --git a/tests/base/tests.py b/tests/base/tests.py index 685e045d..690a01b9 100644 --- a/tests/base/tests.py +++ b/tests/base/tests.py @@ -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():