def test_get_hash(self): interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.get_hash() self.assertEquals(result, ['foo.html', 'hello world'])
def test_get_hash(self): interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.get_hash() self.assertEquals(result, ['foo.html', 'hello world'])
def test_serialize(self): interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.serialize() self.assertEquals(result['filename'], 'foo.html') self.assertEquals(result['context_line'], 'hello world') self.assertEquals(result['lineno'], 1)
def test_serialize(self): interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.serialize() self.assertEquals(result['filename'], 'foo.html') self.assertEquals(result['context_line'], 'hello world') self.assertEquals(result['lineno'], 1)
def test_to_string_returns_traceback(self, get_traceback, get_context): get_traceback.return_value = 'traceback' event = mock.Mock(spec=Event) interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.to_string(event) get_traceback.assert_called_once_with(event, get_context.return_value) self.assertEquals(result, 'Stacktrace (most recent call last):\n\ntraceback')
def test_to_string_returns_traceback(self, get_traceback, get_context): get_traceback.return_value = 'traceback' event = mock.Mock(spec=Event) interface = Template( filename='foo.html', context_line='hello world', lineno=1, ) result = interface.to_string(event) get_traceback.assert_called_once_with(event, get_context.return_value) self.assertEquals(result, 'Stacktrace (most recent call last):\n\ntraceback')
def convert_legacy_kwargs(self, kwargs): from sentry.interfaces import Http, User, Exception, Stacktrace, Template from sentry.utils.template_info import get_template_info data = kwargs.pop('data', None) or {} sentry = data.pop('__sentry__', None) or {} result = { 'event_id': kwargs.pop('message_id', None), 'level': kwargs.pop('level', None), 'logger': kwargs.pop('logger', None), 'server_name': kwargs.pop('server_name', None), 'message': kwargs.pop('message', ''), 'culprit': kwargs.pop('view', None), 'timestamp': kwargs.pop('timestamp', None), } result = dict((k, v) for k, v in result.iteritems() if v is not None) class_name = kwargs.pop('class_name', None) if class_name: result['message'] = '%s: %s' % (class_name, result['message']) if 'url' in data or 'url' in kwargs and 'META' in data: meta = data.pop('META', {}) if 'GET' in data: del data['GET'] result['sentry.interfaces.Http'] = Http( url=data.pop('url', None) or kwargs['url'], method=meta.get('REQUEST_METHOD'), query_string=meta.get('QUERY_STRING'), data=data.pop('POST', None), cookies=data.pop('COOKIES', None), env=meta, ).serialize() if 'user' in sentry: user = sentry['user'] result['sentry.interfaces.User'] = User( **user ).serialize() if 'exception' in sentry: exc = sentry['exception'] result['sentry.interfaces.Exception'] = Exception( type=exc[0], value=u' '.join(itertools.imap(unicode, exc[1])), ).serialize() if 'frames' in sentry: frames = [] keys = ('filename', 'function', 'vars', 'pre_context', 'context_line', 'post_context', 'lineno') for frame in sentry['frames']: if 'vars' in frame: frame['vars'] = dict(frame['vars']) frames.append(dict((k, v) for k, v in frame.iteritems() if k in keys)) if frames: result['sentry.interfaces.Stacktrace'] = Stacktrace( frames=frames, ).serialize() if 'template' in sentry: template = sentry['template'] print get_template_info(template) result['sentry.interfaces.Template'] = Template( **get_template_info(template) ).serialize() result['extra'] = data return result