diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2018-06-15 01:42:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-15 01:42:17 +0200 |
commit | 03559bb05fd963e2be96372ae89fb0bce751d26d (patch) | |
tree | 5b0d1c424c6e8acedb77e14ec392d74d4d0c986a | |
parent | 96d9c812c24d45d431bffc57d75bc0b9d29dae71 (diff) | |
download | raven-03559bb05fd963e2be96372ae89fb0bce751d26d.tar.gz |
fix: Fix stacktraces in some situations being the wong way round (#1261)
-rw-r--r-- | CHANGELOG.md | 5 | ||||
-rw-r--r-- | raven/utils/stacks.py | 2 | ||||
-rw-r--r-- | tests/base/tests.py | 2 | ||||
-rw-r--r-- | tests/handlers/logging/tests.py | 2 |
4 files changed, 8 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d893559..25e410b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ Changelog All notable changes to this project will be documented in this file. Project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +6.10.0 +------ + +* [Core] Fixed stackframes in some situations being in inverse order. + 6.9.0 (2018-05-30) ------------------ * [Core] Switched from culprit to transaction for automatic transaction reporting. diff --git a/raven/utils/stacks.py b/raven/utils/stacks.py index c87a64c..487eae3 100644 --- a/raven/utils/stacks.py +++ b/raven/utils/stacks.py @@ -134,7 +134,7 @@ def iter_stack_frames(frames=None): if not frames: frames = inspect.stack()[1:] - for frame, lineno in ((f[0], f[2]) for f in frames): + for frame, lineno in ((f[0], f[2]) for f in reversed(frames)): f_locals = getattr(frame, 'f_locals', {}) if not _getitem_from_frame(f_locals, '__traceback_hide__'): yield frame, lineno diff --git a/tests/base/tests.py b/tests/base/tests.py index 5644db0..df03278 100644 --- a/tests/base/tests.py +++ b/tests/base/tests.py @@ -491,7 +491,7 @@ class ClientTest(TestCase): self.assertEquals(event['message'], 'test') assert 'stacktrace' in event self.assertEquals(len(frames), len(event['stacktrace']['frames'])) - for frame, frame_i in zip(frames, event['stacktrace']['frames']): + for frame, frame_i in zip(frames[::-1], event['stacktrace']['frames']): self.assertEquals(frame[0].f_code.co_filename, frame_i['abs_path']) self.assertEquals(frame[0].f_code.co_name, frame_i['function']) diff --git a/tests/handlers/logging/tests.py b/tests/handlers/logging/tests.py index 7f24f78..f291021 100644 --- a/tests/handlers/logging/tests.py +++ b/tests/handlers/logging/tests.py @@ -171,7 +171,7 @@ class LoggingIntegrationTest(TestCase): self.assertTrue('stacktrace' in event) frames = event['stacktrace']['frames'] self.assertNotEquals(len(frames), 1) - frame = frames[0] + frame = frames[-1] self.assertEqual(frame['module'], 'raven.handlers.logging') assert 'exception' not in event self.assertTrue('sentry.interfaces.Message' in event) |