def test_request_kwarg(self): handler = SentryHandler() logger = self.logger logger.handlers = [] logger.addHandler(handler) logger.error('This is a test error', extra={ 'request': WSGIRequest( environ={ 'wsgi.input': StringIO(), 'REQUEST_METHOD': 'POST', 'SERVER_NAME': 'testserver', 'SERVER_PORT': '80', 'CONTENT_TYPE': 'application/octet-stream', 'ACCEPT': 'application/json', }) }) self.assertEquals(len(self.raven.events), 1) event = self.raven.events.pop(0) self.assertTrue('sentry.interfaces.Http' in event) http = event['sentry.interfaces.Http'] self.assertEquals(http['method'], 'POST')
def test_request_kwarg(self): handler = SentryHandler() logger = self.logger logger.handlers = [] logger.addHandler(handler) logger.error('This is a test error', extra={ 'request': WSGIRequest( environ={ 'wsgi.input': StringIO(), 'REQUEST_METHOD': 'POST', 'SERVER_NAME': 'testserver', 'SERVER_PORT': '80', 'CONTENT_TYPE': 'application/octet-stream', 'ACCEPT': 'application/json', }) }) assert len(self.raven.events) == 1 event = self.raven.events.pop(0) assert 'request' in event http = event['request'] assert http['method'] == 'POST'
def make_request(): return WSGIRequest(environ={ 'wsgi.input': StringIO(), 'REQUEST_METHOD': 'POST', 'SERVER_NAME': 'testserver', 'SERVER_PORT': '80', 'CONTENT_TYPE': 'text/html', 'ACCEPT': 'text/html', })
def test_raw_post_data_partial_read(self): v = '{"foo": "bar"}' request = make_request() request.environ.update({ 'wsgi.input': StringIO(v + '\r\n\r\n'), 'CONTENT_TYPE': 'application/octet-stream', 'CONTENT_LENGTH': len(v), }) request.read(1) self.raven.captureMessage(message='foo', request=request) self.assertEquals(len(self.raven.events), 1) event = self.raven.events.pop(0) assert 'request' in event http = event['request'] self.assertEquals(http['method'], 'POST') self.assertEquals(http['data'], '<unavailable>')
def test_raw_post_data_partial_read(self): if django.VERSION[:2] < (1, 3): return v = '{"foo": "bar"}' request = make_request() request.environ.update({ 'wsgi.input': StringIO(v + '\r\n\r\n'), 'CONTENT_TYPE': 'application/octet-stream', 'CONTENT_LENGTH': len(v), }) request.read(1) self.raven.captureMessage(message='foo', request=request) self.assertEquals(len(self.raven.events), 1) event = self.raven.events.pop(0) self.assertTrue('sentry.interfaces.Http' in event) http = event['sentry.interfaces.Http'] self.assertEquals(http['method'], 'POST') self.assertEquals(http['data'], '<unavailable>')