Пример #1
0
    def test_log(self):
        token = RequestToken().save()
        factory = RequestFactory()
        request = factory.get('/')
        request.user = AnonymousUser()
        request.META = {}
        response = HttpResponse("foo", status=123)

        def assertUsedToDate(expected):
            token.refresh_from_db(fields=['used_to_date'])
            self.assertEqual(token.used_to_date, expected)

        log = token.log(request, response)
        self.assertEqual(RequestTokenLog.objects.get(), log)
        self.assertEqual(log.user, None)
        self.assertEqual(log.token, token)
        self.assertEqual(log.user_agent, 'unknown')
        self.assertEqual(log.client_ip, None)
        self.assertEqual(log.status_code, 123)
        assertUsedToDate(1)

        request.META['REMOTE_ADDR'] = '192.168.0.1'
        log = token.log(request, response)
        self.assertEqual(log.client_ip, '192.168.0.1')
        assertUsedToDate(2)

        request.META['HTTP_X_FORWARDED_FOR'] = '192.168.0.2'
        log = token.log(request, response)
        self.assertEqual(log.client_ip, '192.168.0.2')
        assertUsedToDate(3)

        request.META['HTTP_USER_AGENT'] = 'test_agent'
        log = token.log(request, response)
        self.assertEqual(log.user_agent, 'test_agent')
        token.refresh_from_db(fields=['used_to_date'])
        assertUsedToDate(4)

        with mock.patch.object(RequestTokenErrorLogQuerySet,
                               'create_error_log') as mock_log:
            log = token.log(request, response, MaxUseError('foo'))
            self.assertEqual(mock_log.call_count, 1)
            self.assertEqual(log.user_agent, 'test_agent')
            token.refresh_from_db(fields=['used_to_date'])
            assertUsedToDate(5)
    def test_log(self):
        token = RequestToken().save()
        factory = RequestFactory()
        request = factory.get("/")
        request.user = AnonymousUser()
        request.META = {}
        response = HttpResponse("foo", status=123)

        def assertUsedToDate(expected):
            token.refresh_from_db(fields=["used_to_date"])
            self.assertEqual(token.used_to_date, expected)

        log = token.log(request, response)
        self.assertEqual(RequestTokenLog.objects.get(), log)
        self.assertEqual(log.user, None)
        self.assertEqual(log.token, token)
        self.assertEqual(log.user_agent, "unknown")
        self.assertEqual(log.client_ip, None)
        self.assertEqual(log.status_code, 123)
        assertUsedToDate(1)

        request.META["REMOTE_ADDR"] = "192.168.0.1"
        log = token.log(request, response)
        self.assertEqual(log.client_ip, "192.168.0.1")
        assertUsedToDate(2)

        request.META["HTTP_X_FORWARDED_FOR"] = "192.168.0.2"
        log = token.log(request, response)
        self.assertEqual(log.client_ip, "192.168.0.2")
        assertUsedToDate(3)

        request.META["HTTP_USER_AGENT"] = "test_agent"
        log = token.log(request, response)
        self.assertEqual(log.user_agent, "test_agent")
        token.refresh_from_db(fields=["used_to_date"])
        assertUsedToDate(4)

        with mock.patch.object(RequestTokenErrorLogQuerySet,
                               "create_error_log") as mock_log:
            log = token.log(request, response, MaxUseError("foo"))
            self.assertEqual(mock_log.call_count, 1)
            self.assertEqual(log.user_agent, "test_agent")
            token.refresh_from_db(fields=["used_to_date"])
            assertUsedToDate(5)