def get_data_from_request(self, request): from django.contrib.auth.models import User, AnonymousUser if request.method != 'GET': try: data = request.raw_post_data and request.raw_post_data or request.POST except Exception: # assume we had a partial read: data = '<unavailable>' else: data = None environ = request.META result = { 'http': { 'method': request.method, 'url': request.build_absolute_uri(), 'query_string': request.META.get('QUERY_STRING'), 'data': data, 'cookies': dict(request.COOKIES), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } if hasattr(request, 'user') and isinstance(request.user, (User, AnonymousUser)): result['user'] = self.get_user_info(request) return result
def get_data_from_request(request): urlparts = urlparse.urlsplit(request.url) return { 'http': { 'url': '%s://%s%s' % (urlparts.scheme, urlparts.netloc, urlparts.path), 'query_string': urlparts.query, 'method': request.method, 'data': request.form, 'headers': dict(get_headers(request.environ)), 'env': dict(get_environ(request.environ)), } }
def handle_exception(self, exc_info, environ): event_id = self.client.capture( 'Exception', exc_info=exc_info, data={ 'http': { 'method': environ.get('REQUEST_METHOD'), 'url': get_current_url(environ, strip_querystring=True), 'query_string': environ.get('QUERY_STRING'), # TODO # 'data': environ.get('wsgi.input'), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } }) return event_id
def handle_exception(self, exc_info, environ): event_id = self.client.capture('Exception', exc_info=exc_info, data={ 'http': { 'method': environ.get('REQUEST_METHOD'), 'url': get_current_url(environ, strip_querystring=True), 'query_string': environ.get('QUERY_STRING'), # TODO # 'data': environ.get('wsgi.input'), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } ) return event_id
def get_data_from_request(self, request): django_auth_installed = is_app_installed('django.contrib.auth') if django_auth_installed: from django.contrib.auth.models import AnonymousUser try: # try to import User via get_user_model (Django 1.5+) from django.contrib.auth import get_user_model User = get_user_model() except ImportError: # import the User model from the standard location (Django <1.5) from django.contrib.auth.models import User if request.method != 'GET': try: if hasattr(request, 'body'): # Django 1.4+ raw_data = request.body else: raw_data = request.raw_post_data data = raw_data if raw_data else request.POST except Exception: # assume we had a partial read: data = '<unavailable>' else: data = None environ = request.META result = { 'http': { 'method': request.method, 'url': request.build_absolute_uri(), 'query_string': request.META.get('QUERY_STRING'), 'data': data, 'cookies': dict(request.COOKIES), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } if django_auth_installed and \ hasattr(request, 'user') and \ isinstance(request.user, (User, AnonymousUser)): result['user'] = self.get_user_info(request) return result
def test_tuple_as_key(self): result = dict(get_headers({ ('a', 'tuple'): 'foo', })) self.assertEquals(result, {})
def test_coerces_content_length(self): result = dict(get_headers({ 'CONTENT_LENGTH': '134', })) self.assertIn('Content-Length', result) self.assertEquals(result['Content-Length'], '134')
def test_coerces_content_type(self): result = dict(get_headers({ 'CONTENT_TYPE': 'text/plain', })) self.assertIn('Content-Type', result) self.assertEquals(result['Content-Type'], 'text/plain')
def test_coerces_http_name(self): result = dict(get_headers({ 'HTTP_ACCEPT': 'text/plain', })) self.assertIn('Accept', result) self.assertEquals(result['Accept'], 'text/plain')
def get_data_from_request(self, request): django_auth_installed = is_app_installed('django.contrib.auth') if django_auth_installed: from django.contrib.auth.models import AnonymousUser try: # try to import User via get_user_model (Django 1.5+) from django.contrib.auth import get_user_model User = get_user_model() except ImportError: # import the User model from the standard location (Django <1.5) from django.contrib.auth.models import User if request.method != 'GET': try: if hasattr(request, 'body'): # Django 1.4+ raw_data = request.body else: raw_data = request.raw_post_data data = raw_data if raw_data else request.POST except Exception: # assume we had a partial read: data = '<unavailable>' else: data = None environ = request.META if hasattr(request, 'get_raw_uri'): # added in Django 1.9 url = request.get_raw_uri() else: try: # Requires host to be in ALLOWED_HOSTS, might throw a # DisallowedHost exception url = request.build_absolute_uri() except SuspiciousOperation: # catching SuspiciousOperation, as the more specific # DisallowedHost has only been introduced in Django 1.6. # We can't figure out the real URL, so we have to set it to # None url = None result = { 'http': { 'method': request.method, 'url': url, 'query_string': request.META.get('QUERY_STRING'), 'data': data, 'cookies': dict(request.COOKIES), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } if django_auth_installed and \ hasattr(request, 'user') and \ isinstance(request.user, (User, AnonymousUser)): result['user'] = self.get_user_info(request) return result
def get_data_from_request(self, request): django_auth_installed = is_app_installed("django.contrib.auth") if django_auth_installed: from django.contrib.auth.models import AnonymousUser try: # try to import User via get_user_model (Django 1.5+) from django.contrib.auth import get_user_model User = get_user_model() except ImportError: # import the User model from the standard location (Django <1.5) from django.contrib.auth.models import User if request.method != "GET": try: if hasattr(request, "body"): # Django 1.4+ raw_data = request.body else: raw_data = request.raw_post_data data = raw_data if raw_data else request.POST except Exception: # assume we had a partial read: data = "<unavailable>" else: data = None environ = request.META if hasattr(request, "get_raw_uri"): # added in Django 1.9 url = request.get_raw_uri() else: try: # Requires host to be in ALLOWED_HOSTS, might throw a # DisallowedHost exception url = request.build_absolute_uri() except SuspiciousOperation: # catching SuspiciousOperation, as the more specific # DisallowedHost has only been introduced in Django 1.6. # We can't figure out the real URL, so we have to set it to # None url = None result = { "http": { "method": request.method, "url": url, "query_string": request.META.get("QUERY_STRING"), "data": data, "cookies": dict(request.COOKIES), "headers": dict(get_headers(environ)), "env": dict(get_environ(environ)), } } if django_auth_installed and hasattr(request, "user") and isinstance(request.user, (User, AnonymousUser)): result["user"] = self.get_user_info(request) return result