Ejemplo n.º 1
0
 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'])
Ejemplo n.º 2
0
 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'])
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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')
Ejemplo n.º 6
0
 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')
Ejemplo n.º 7
0
    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