Пример #1
0
 def test_request_headers_sensitive_logged(self, mock_log):
     request = self.factory.post(
         "/somewhere", **{
             "HTTP_AUTHORIZATION": "sensitive-token",
             "HTTP_USER_AGENT": "silly-human",
             "HTTP_PROXY_AUTHORIZATION": "proxy-token",
         })
     middleware = LoggingMiddleware()
     middleware.process_request(request, None, request.body)
     if IS_DJANGO_VERSION_GTE_3_2_0:
         self._assert_logged(mock_log, "Authorization")
         self._assert_logged_with_key_value(mock_log, "Authorization",
                                            "*****")
     else:
         self._assert_logged(mock_log, "HTTP_AUTHORIZATION")
         self._assert_logged_with_key_value(mock_log, "HTTP_AUTHORIZATION",
                                            "*****")
     if IS_DJANGO_VERSION_GTE_3_2_0:
         self._assert_logged(mock_log, "User-Agent")
         self._assert_logged_with_key_value(mock_log, "User-Agent",
                                            "silly-human")
     else:
         self._assert_logged(mock_log, "HTTP_USER_AGENT")
         self._assert_logged_with_key_value(mock_log, "HTTP_USER_AGENT",
                                            "silly-human")
     if IS_DJANGO_VERSION_GTE_3_2_0:
         self._assert_logged(mock_log, "Proxy-Authorization")
         self._assert_logged_with_key_value(mock_log, "Proxy-Authorization",
                                            "proxy-token")
     else:
         self._assert_logged(mock_log, "HTTP_PROXY_AUTHORIZATION")
         self._assert_logged_with_key_value(mock_log,
                                            "HTTP_PROXY_AUTHORIZATION",
                                            "proxy-token")
Пример #2
0
 def test_logging_http_4xx_level(self, mock_log):
     for level in (logging.INFO, logging.WARNING, logging.ERROR):
         mock_log.reset_mock()
         with override_settings(REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL=level):
             middleware = LoggingMiddleware()
             middleware.process_response(self.request, self.response_404)
             self._assert_logged_with_level(mock_log, level)
Пример #3
0
    def test_customized_max_body_length(self, mock_log):
        body = 150 * "0" + "1"
        request = self.factory.post("/somewhere", data={"file": body})
        middleware = LoggingMiddleware(self.get_response)
        middleware.__call__(request)

        request_body_str = request.body if isinstance(request.body, str) else request.body.decode()
        self._assert_logged(mock_log, re.sub(r"\r?\n", "", request_body_str[:150]))
        self._assert_not_logged(mock_log, body)
    def test_default_max_body_length(self, mock_log):
        factory = RequestFactory()
        middleware = LoggingMiddleware()

        body = DEFAULT_MAX_BODY_LENGTH * "0" + "1"
        request = factory.post("/somewhere", data={"file": body})
        middleware.process_request(request)
        self._assert_logged(mock_log, str(request.body[:DEFAULT_MAX_BODY_LENGTH]))
        self._assert_not_logged(mock_log, body)
    def test_customized_max_body_length(self, mock_log):
        factory = RequestFactory()
        middleware = LoggingMiddleware()

        body = 150 * "0" + "1"
        request = factory.post("/somewhere", data={"file": body})
        middleware.process_request(request)
        self._assert_logged(mock_log, str(request.body[:150]))
        self._assert_not_logged(mock_log, body)
Пример #6
0
    def setUp(self):
        self.factory = RequestFactory()
        def get_response(request):
            response = mock.MagicMock()
            response.status_code = 200
            response.get.return_value = 'application/json'
            response._headers = {'test_headers': 'test_headers'}
            return response

        self.middleware = LoggingMiddleware(get_response)
Пример #7
0
    def test_customized_max_body_length(self, mock_log):
        factory = RequestFactory()
        middleware = LoggingMiddleware()

        body = 150 * "0" + "1"
        request = factory.post("/somewhere", data={"file": body})
        middleware.process_request(request)

        request_body_str = request.body if isinstance(request.body, str) else request.body.decode()
        self._assert_logged(mock_log, re.sub(r'\r?\n', '', request_body_str[:150]))
        self._assert_not_logged(mock_log, body)
Пример #8
0
    def test_default_max_body_length(self, mock_log):
        factory = RequestFactory()
        middleware = LoggingMiddleware()

        body = DEFAULT_MAX_BODY_LENGTH * "0" + "1"
        request = factory.post("/somewhere", data={"file": body})
        middleware.process_request(request)

        request_body_str = request.body if isinstance(
            request.body, str) else request.body.decode()
        self._assert_logged(
            mock_log,
            re.sub(r"\r?\n", "", request_body_str[:DEFAULT_MAX_BODY_LENGTH]))
        self._assert_not_logged(mock_log, body)
Пример #9
0
 def test_request_headers_sensitive_logged_default(self, mock_log):
     request = self.factory.post(
         "/somewhere", **{
             "HTTP_AUTHORIZATION": "sensitive-token",
             "HTTP_PROXY_AUTHORIZATION": "proxy-token"
         })
     middleware = LoggingMiddleware()
     middleware.process_request(request)
     self._assert_logged(mock_log, "HTTP_AUTHORIZATION")
     self._assert_logged(mock_log, "HTTP_PROXY_AUTHORIZATION")
     self._assert_logged_with_key_value(mock_log, "HTTP_AUTHORIZATION",
                                        "*****")
     self._assert_logged_with_key_value(mock_log,
                                        "HTTP_PROXY_AUTHORIZATION", "*****")
Пример #10
0
    def setUp(self):
        self.factory = RequestFactory()

        def get_response(request):
            response = mock.MagicMock()
            response.status_code = 200
            response.get.return_value = "application/json"
            headers = {"test_headers": "test_headers"}
            if IS_DJANGO_VERSION_GTE_3_2_0:
                response.headers = headers
            else:
                response._headers = headers
            return response

        self.middleware = LoggingMiddleware(get_response)
Пример #11
0
 def test_request_headers_sensitive_logged_default(self, mock_log):
     request = self.factory.post(
         "/somewhere", **{"HTTP_AUTHORIZATION": "sensitive-token", "HTTP_PROXY_AUTHORIZATION": "proxy-token"}
     )
     middleware = LoggingMiddleware()
     middleware.process_request(request)
     if IS_DJANGO_VERSION_GTE_3_2_0:
         self._assert_logged(mock_log, "Authorization")
         self._assert_logged_with_key_value(mock_log, "Authorization", "*****")
     else:
         self._assert_logged(mock_log, "HTTP_AUTHORIZATION")
         self._assert_logged_with_key_value(mock_log, "HTTP_AUTHORIZATION", "*****")
     if IS_DJANGO_VERSION_GTE_3_2_0:
         self._assert_logged(mock_log, "Proxy-Authorization")
         self._assert_logged_with_key_value(mock_log, "Proxy-Authorization", "*****")
     else:
         self._assert_logged(mock_log, "HTTP_PROXY_AUTHORIZATION")
         self._assert_logged_with_key_value(mock_log, "HTTP_PROXY_AUTHORIZATION", "*****")
Пример #12
0
 def test_request_headers_sensitive_logged(self, mock_log):
     request = self.factory.post(
         "/somewhere", **{
             'HTTP_AUTHORIZATION': 'sensitive-token',
             'HTTP_USER_AGENT': 'silly-human',
             'HTTP_PROXY_AUTHORIZATION': 'proxy-token'
         })
     middleware = LoggingMiddleware()
     middleware.process_request(request)
     self._assert_logged(mock_log, "HTTP_AUTHORIZATION")
     self._assert_logged(mock_log, "HTTP_USER_AGENT")
     self._assert_logged(mock_log, "HTTP_PROXY_AUTHORIZATION")
     self._assert_logged_with_key_value(mock_log, "HTTP_AUTHORIZATION",
                                        '*****')
     self._assert_logged_with_key_value(mock_log, "HTTP_USER_AGENT",
                                        'silly-human')
     self._assert_logged_with_key_value(mock_log,
                                        "HTTP_PROXY_AUTHORIZATION",
                                        'proxy-token')
Пример #13
0
 def test_invalid_log_level(self, mock_log):
     with self.assertRaises(ValueError):
         LoggingMiddleware()
Пример #14
0
 def test_logging_with_customized_log_level(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request)
     self._assert_logged_with_level(mock_log, logging.INFO)
Пример #15
0
 def test_logging_default_debug_level(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request)
     self._assert_logged_with_level(mock_log, DEFAULT_LOG_LEVEL)
Пример #16
0
 def setUp(self):
     self.factory = RequestFactory()
     self.middleware = LoggingMiddleware()
Пример #17
0
 def test_invalid_max_body_length(self, mock_log):
     with self.assertRaises(ValueError):
         LoggingMiddleware()
Пример #18
0
 def setUp(self):
     from django.urls import set_urlconf
     set_urlconf('test_urls')
     self.factory = RequestFactory()
     self.middleware = LoggingMiddleware()
Пример #19
0
 def test_legacy_settings(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request, None, self.request.body)
     self.assertFalse(self._is_log_colorized(mock_log))
Пример #20
0
 def test_legacy_settings_taking_precedence(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request)
     self.assertFalse(self._is_log_colorized(mock_log))
Пример #21
0
 def test_log_request_200(self, mock_log):
     mock_log.reset_mock()
     middleware = LoggingMiddleware()
     middleware.process_request(self.request_200, self.response_200)
     self._assert_logged_with_level(mock_log, DEFAULT_LOG_LEVEL)
Пример #22
0
 def test_log_request_500_as_error(self, mock_log):
     mock_log.reset_mock()
     middleware = LoggingMiddleware()
     middleware.process_request(self.request_500, self.response_500)
     self._assert_logged_with_level(mock_log, logging.ERROR)
Пример #23
0
 def test_default_colorize(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request)
     self.assertEquals(DEFAULT_COLORIZE, self._is_log_colorized(mock_log))
Пример #24
0
 def test_disable_colorize(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_request(self.request)
     self.assertFalse(self._is_log_colorized(mock_log))
Пример #25
0
 def test_logging_default_http_4xx_error(self, mock_log):
     middleware = LoggingMiddleware()
     middleware.process_response(self.request, self.response_404)
     self.assertEqual(DEFAULT_HTTP_4XX_LOG_LEVEL, logging.ERROR)
     self._assert_logged_with_level(mock_log, DEFAULT_HTTP_4XX_LOG_LEVEL)