예제 #1
0
    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
예제 #2
0
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)),
        }
    }
예제 #3
0
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)),
        }
    }
예제 #4
0
 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
예제 #6
0
    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
예제 #7
0
 def test_tuple_as_key(self):
     result = dict(get_headers({
         ('a', 'tuple'): 'foo',
     }))
     self.assertEquals(result, {})
예제 #8
0
 def test_coerces_content_length(self):
     result = dict(get_headers({
         'CONTENT_LENGTH': '134',
     }))
     self.assertIn('Content-Length', result)
     self.assertEquals(result['Content-Length'], '134')
예제 #9
0
 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')
예제 #10
0
 def test_coerces_http_name(self):
     result = dict(get_headers({
         'HTTP_ACCEPT': 'text/plain',
     }))
     self.assertIn('Accept', result)
     self.assertEquals(result['Accept'], 'text/plain')
예제 #11
0
    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
예제 #12
0
    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
예제 #13
0
    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