def test_over_max(self): values = [] for n in xrange(5): values.append({ 'filename': 'frame %d' % n, 'vars': {'foo': 'bar'}, 'context_line': 'b', 'pre_context': ['a'], 'post_context': ['c'], }) interface = Stacktrace.to_python({'frames': values}) slim_frame_data(interface, 4) assert len(interface.frames) == 5 for value, num in zip(interface.frames[:2], xrange(2)): assert value.filename == 'frame %d' % num assert value.vars is not None assert value.pre_context is not None assert value.post_context is not None for value, num in zip(interface.frames[3:], xrange(3, 5)): assert value.filename == 'frame %d' % num assert value.vars is not None assert value.pre_context is not None assert value.post_context is not None value = interface.frames[2] assert value.filename == 'frame 2' assert not value.vars assert not value.pre_context assert not value.post_context
def test_over_max(self): values = [] for n in xrange(5): values.append({ 'filename': 'frame %d' % n, 'vars': {}, 'pre_context': [], 'post_context': [], }) value = {'frames': values} slim_frame_data(value, 4) assert len(value['frames']) == 5 for value, num in zip(values[:2], xrange(2)): assert value['filename'] == 'frame %d' % num assert value['vars'] is not None assert value['pre_context'] is not None assert value['post_context'] is not None assert values[2]['filename'] == 'frame 2' assert 'vars' not in values[2] assert 'pre_context' not in values[2] assert 'post_context' not in values[2] for value, num in zip(values[3:], xrange(3, 5)): assert value['filename'] == 'frame %d' % num assert value['vars'] is not None assert value['pre_context'] is not None assert value['post_context'] is not None
def test_over_max(self): values = [] for n in xrange(5): values.append({ 'filename': 'frame %d' % n, 'vars': { 'foo': 'bar' }, 'context_line': 'b', 'pre_context': ['a'], 'post_context': ['c'], }) interface = Stacktrace.to_python({'frames': values}) slim_frame_data(interface, 4) assert len(interface.frames) == 5 for value, num in zip(interface.frames[:2], xrange(2)): assert value.filename == 'frame %d' % num assert value.vars is not None assert value.pre_context is not None assert value.post_context is not None for value, num in zip(interface.frames[3:], xrange(3, 5)): assert value.filename == 'frame %d' % num assert value.vars is not None assert value.pre_context is not None assert value.post_context is not None value = interface.frames[2] assert value.filename == 'frame 2' assert not value.vars assert not value.pre_context assert not value.post_context
def test_over_max(self): values = [] for n in xrange(5): values.append({"filename": "frame %d" % n, "vars": {}, "pre_context": [], "post_context": []}) value = {"frames": values} slim_frame_data(value, 4) assert len(value["frames"]) == 5 for value, num in zip(values[:2], xrange(2)): assert value["filename"] == "frame %d" % num assert value["vars"] is not None assert value["pre_context"] is not None assert value["post_context"] is not None assert values[2]["filename"] == "frame 2" assert "vars" not in values[2] assert "pre_context" not in values[2] assert "post_context" not in values[2] for value, num in zip(values[3:], xrange(3, 5)): assert value["filename"] == "frame %d" % num assert value["vars"] is not None assert value["pre_context"] is not None assert value["post_context"] is not None
def slim_exception_data(instance, frame_allowance=settings.SENTRY_MAX_STACKTRACE_FRAMES): """ Removes various excess metadata from middle frames which go beyond ``frame_allowance``. """ # TODO(dcramer): it probably makes sense to prioritize a certain exception # rather than distributing allowance among all exceptions frames = [] for exception in instance.values: if not exception.stacktrace: continue frames.extend(exception.stacktrace.frames) slim_frame_data(frames, frame_allowance)
def test_under_max(self): interface = Stacktrace.to_python({'frames': [{'filename': 'foo'}]}) slim_frame_data(interface, 4) assert len(interface.frames) == 1 assert not interface.frames_omitted
def test_under_max(self): value = {'frames': [{'filename': 'foo'}]} slim_frame_data(value) assert len(value['frames']) == 1 assert value.get('frames_omitted') is None
def test_under_max(self): value = {"frames": [{"filename": "foo"}]} slim_frame_data(value) assert len(value["frames"]) == 1 assert value.get("frames_omitted") is None