コード例 #1
0
    def test_from_http_request_not_commit(self):
        http_request = HttpRequest()
        http_request.method = 'GET'

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertIsNone(request.id)
コード例 #2
0
    def process_response(self, request, response):
        if request.method.lower() not in settings.VALID_METHOD_NAMES:
            return response

        if response.status_code < 400 and settings.ONLY_ERRORS:
            return response

        ignore = patterns(False, *settings.IGNORE_PATHS)
        if ignore.resolve(request.path[1:]):
            return response

        if request.is_ajax() and settings.IGNORE_AJAX:
            return response

        if request.META.get('REMOTE_ADDR') in settings.IGNORE_IP:
            return response

        ignore = patterns(False, *settings.IGNORE_USER_AGENTS)
        if ignore.resolve(request.META.get('HTTP_USER_AGENT', '')):
            return response

        if getattr(request, 'user', False):
            if request.user.username in settings.IGNORE_USERNAME:
                return response

        r = Request()
        r.from_http_request(request, response)

        return response
コード例 #3
0
    def process_response(self, request, response):
        if request.method.lower() not in settings.REQUEST_VALID_METHOD_NAMES:
            return response

        if response.status_code < 400 and settings.REQUEST_ONLY_ERRORS:
            return response

        ignore = patterns(False, *settings.REQUEST_IGNORE_PATHS)
        if ignore.resolve(request.path[1:]):
            return response

        if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
            return response

        if request.META.get('REMOTE_ADDR') in settings.REQUEST_IGNORE_IP:
            return response

        ignore = patterns(False, *settings.REQUEST_IGNORE_USER_AGENTS)
        if ignore.resolve(request.META.get('HTTP_USER_AGENT', '')):
            return response

        if getattr(request, 'user', False):
            if request.user.username in settings.REQUEST_IGNORE_USERNAME:
                return response

        r = Request()
        r.from_http_request(request, response)

        return response
コード例 #4
0
    def process_response(self, request, response):
        if request.method.lower() not in settings.REQUEST_VALID_METHOD_NAMES:
            return response

        if response.status_code < 400 and settings.REQUEST_ONLY_ERRORS:
            return response

        ignore = patterns(False, *settings.REQUEST_IGNORE_PATHS)
        if ignore.resolve(request.path[1:]):
            return response

        if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
            return response

        if get_remote_addr(request) in settings.REQUEST_IGNORE_IP:
            return response

        if getattr(request, 'user', False):
            if request.user.username in settings.REQUEST_IGNORE_USERNAME:
                return response

        r = Request()
        r.from_http_request(request, response)

        return response
コード例 #5
0
    def test_from_http_request_not_commit(self):
        http_request = HttpRequest()
        http_request.method = 'GET'

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertIsNone(request.id)
コード例 #6
0
    def test_from_http_request_with_user(self):
        http_request = self.factory.get('/')
        http_request.user = get_user_model().objects.create(username='******')

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertEqual(request.user.id, http_request.user.id)
コード例 #7
0
 def process_response(self, request, response):
     if response.status_code < 400 and settings.REQUEST_ONLY_ERRORS:
         return response
     
     allow = patterns(True, *settings.REQUEST_ALLOW_PATHS)
     if not allow.resolve(request.path[1:]):
         return response
     
     ignore = patterns(False, *settings.REQUEST_IGNORE_PATHS)
     if ignore.resolve(request.path[1:]):
         return response
     
     if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
         return response
     
     if request.META.get('REMOTE_ADDR') in settings.REQUEST_IGNORE_IP:
         return response
     
     if getattr(request, 'user', False):
         if request.user.username in settings.REQUEST_IGNORE_USERNAME:
             return response
     
     r = Request()
     r.from_http_request(request, response)
     
     return response
コード例 #8
0
    def test_from_http_request_with_user(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_request.user = User.objects.create(username='******')

        request = Request()
        request.from_http_request(http_request)
        self.assertEqual(request.user.id, http_request.user.id)
コード例 #9
0
ファイル: test_models.py プロジェクト: skabbit/django-request
    def test_from_http_request_with_user(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_request.user = get_user_model().objects.create(username='******')

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertEqual(request.user.id, http_request.user.id)
コード例 #10
0
    def test_from_http_request_with_user(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_request.user = get_user_model().objects.create(username='******')

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertEqual(request.user.id, http_request.user.id)
コード例 #11
0
    def test_from_http_request_redirection(self):
        http_request = self.factory.get('/')

        http_response = HttpResponse(status=301)
        http_response['Location'] = '/foo'

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)
        self.assertEqual(request.redirect, '/foo')
コード例 #12
0
    def test_from_http_request_redirection(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_response = HttpResponse(status=301)
        http_response['Location'] = '/foo'

        request = Request()
        request.from_http_request(http_request, http_response)
        self.assertEqual(request.redirect, '/foo')
コード例 #13
0
    def test_from_http_request_redirection(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_response = HttpResponse(status=301)
        http_response['Location'] = '/foo'

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)
        self.assertEqual(request.redirect, '/foo')
コード例 #14
0
ファイル: test_models.py プロジェクト: ZuluPro/pony-traffic
    def test_from_http_request_with_user(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_request.user = User.objects.create(username='******')
        http_request.META['REMOTE_ADDR'] = '32.64.128.16'

        request = Request()
        request.from_http_request(http_request)
        self.assertEqual(request.user.id, http_request.user.id)
コード例 #15
0
ファイル: test_models.py プロジェクト: ZuluPro/pony-traffic
    def test_from_http_request_redirection(self):
        http_request = HttpRequest()
        http_request.method = 'GET'
        http_request.META['HTTP_USER_AGENT'] = 'test user agent'
        http_request.META['REMOTE_ADDR'] = '32.64.128.16'
        http_response = HttpResponse(status=301)
        http_response['Location'] = '/foo'

        request = Request()
        request.from_http_request(http_request, http_response)
        self.assertEqual(request.redirect, '/foo')
コード例 #16
0
    def process_response(self, request, response):
        if response.status_code < 400 and settings.REQUEST_ONLY_ERRORS:
            return response
        
        ignore = patterns(False, *settings.REQUEST_IGNORE_PATHS)
        if ignore.resolve(request.path[1:]):
            return response
        
        if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
            return response
        
        if request.META.get('REMOTE_ADDR') in settings.REQUEST_IGNORE_IP:
            return response
        
        if getattr(request, 'user', False):
            if request.user.username in settings.REQUEST_IGNORE_USERNAME:
                return response
        
        if not getattr(request, 'session', None):
            return response

        r = Request()
        now = datetime.datetime.now()
        path = request.path
        if path[len(path)-1] != '/':
            path = path + '/'
    
        if path in settings.REQUEST_ALWAYS_INSERT_FROM_URLS:
            try:
                request.session['last_request_log'] = now
            except:
                pass
            r.from_http_request(request, response, commit=False)
            record_request(r)
            return response

        try:
            last_log = request.session['last_request_log']
            if settings.REQUEST_USER_TRACKING_LOGAGAIN_DELAY:
                last_log_limit = last_log + \
                    settings.REQUEST_USER_TRACKING_LOGAGAIN_DELAY
                if now < last_log_limit :
                    return response
        except KeyError:
            pass 
        request.session['last_request_log'] = now
        r.from_http_request(request, response, commit=False)
        record_request(r)
        return response
コード例 #17
0
ファイル: test_models.py プロジェクト: JJediny/django-request
    def test_from_http_request(self):
        http_request = HttpRequest()
        http_request.method = 'PATCH'
        http_request.path = '/kylef'
        http_request.META['REMOTE_ADDR'] = '32.64.128.16'

        http_response = HttpResponse(status=204)

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)

        self.assertEqual(request.path, '/kylef')
        self.assertEqual(request.method, 'PATCH')
        self.assertEqual(request.ip, '32.64.128.16')
        self.assertEqual(request.response, 204)
コード例 #18
0
ファイル: middleware.py プロジェクト: Derecho/django-request
 def process_response(self, request, response):
     if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
         return response
     
     if request.META.get('REMOTE_ADDR') in settings.REQUEST_IGNORE_IP:
         return response
     
     if getattr(request, 'user', False):
         if request.user.username in settings.REQUEST_IGNORE_USERNAME:
             return response
     
     r = Request()
     r.from_http_request(request, response)
     
     return response
コード例 #19
0
    def test_from_http_request(self):
        http_request = self.factory.patch(
            '/kylef',
            REMOTE_ADDR='32.64.128.16',
            HTTP_USER_AGENT='test user agent',
            HTTP_REFERER='https://fuller.li/',
        )

        http_response = HttpResponse(status=204)

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)

        self.assertEqual(request.path, '/kylef')
        self.assertEqual(request.method, 'PATCH')
        self.assertEqual(request.ip, '32.64.128.16')
        self.assertEqual(request.response, 204)
        self.assertEqual(request.user_agent, 'test user agent')
        self.assertEqual(request.referer, 'https://fuller.li/')
コード例 #20
0
    def test_from_http_request(self):
        http_request = HttpRequest()
        http_request.method = 'PATCH'
        http_request.path = '/kylef'
        http_request.META['REMOTE_ADDR'] = '32.64.128.16'
        http_request.META['HTTP_USER_AGENT'] = 'test user agent'
        http_request.META['HTTP_REFERER'] = 'https://fuller.li/'

        http_response = HttpResponse(status=204)

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)

        self.assertEqual(request.path, '/kylef')
        self.assertEqual(request.method, 'PATCH')
        self.assertEqual(request.ip, '32.64.128.16')
        self.assertEqual(request.response, 204)
        self.assertEqual(request.user_agent, 'test user agent')
        self.assertEqual(request.referer, 'https://fuller.li/')
コード例 #21
0
    def test_from_http_request(self):
        http_request = HttpRequest()
        http_request.method = 'PATCH'
        http_request.path = '/kylef'
        http_request.META['REMOTE_ADDR'] = '32.64.128.16'
        http_request.META['HTTP_USER_AGENT'] = 'test user agent'
        http_request.META['HTTP_REFERER'] = 'https://fuller.li/'

        http_response = HttpResponse(status=204)

        request = Request()
        request.from_http_request(http_request, http_response, commit=False)

        self.assertEqual(request.path, '/kylef')
        self.assertEqual(request.method, 'PATCH')
        self.assertEqual(request.ip, '32.64.128.16')
        self.assertEqual(request.response, 204)
        self.assertEqual(request.user_agent, 'test user agent')
        self.assertEqual(request.referer, 'https://fuller.li/')
コード例 #22
0
    def test_from_http_request_not_commit(self):
        http_request = self.factory.get('/')

        request = Request()
        request.from_http_request(http_request, commit=False)
        self.assertIsNone(request.id)