コード例 #1
0
    def test_cookie_monitoring_max_group(self, mock_set_custom_attribute, mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        mock_request = Mock()
        mock_request.COOKIES = {
            "a": "." * 10,
            "b_a": "." * 15,
            "b_c": "." * 20,
        }

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies.1.name', 'b_c'),
            call('cookies.1.size', 20),
            call('cookies.2.name', 'b_a'),
            call('cookies.2.size', 15),
            call('cookies.3.name', 'a'),
            call('cookies.3.size', 10),
            call('cookies.group.1.name', 'b'),
            call('cookies.group.1.size', 35),
            call('cookies.max.name', 'b_c'),
            call('cookies.max.size', 20),
            call('cookies.max.group.name', 'b'),
            call('cookies.max.group.size', 35),
            call('cookies_total_size', 45)
        ])
コード例 #2
0
    def test_cookie_monitoring_no_groups(self, mock_set_custom_attribute,
                                         mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        cookies_dict = {
            "a": "." * 10,
            "b": "." * 15,
        }

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies.max.name', 'b'),
            call('cookies.max.size', 15),
            call('cookies.1.name', 'b'),
            call('cookies.1.size', 15),
            call('cookies.2.name', 'a'),
            call('cookies.2.size', 10),
            call('cookies_total_size', 25),
        ],
                                                   any_order=True)
コード例 #3
0
    def test_cookie_monitoring(self, mock_set_custom_attribute,
                               mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        cookies_dict = {
            "a": "." * 100,
            "_b": "." * 13,
            "_c_": "." * 13,
            "a.b": "." * 10,
            "a.c": "." * 10,
            "b.": "." * 13,
            "b_a": "." * 15,
            "b_c": "." * 15,
            "d": "." * 3,
        }

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies.1.name', 'a'),
            call('cookies.1.size', 100),
            call('cookies.2.name', 'b_a'),
            call('cookies.2.size', 15),
            call('cookies.3.name', 'b_c'),
            call('cookies.3.size', 15),
            call('cookies.4.name', '_b'),
            call('cookies.4.size', 13),
            call('cookies.5.name', '_c_'),
            call('cookies.5.size', 13),
            call('cookies.6.name', 'b.'),
            call('cookies.6.size', 13),
            call('cookies.7.name', 'a.b'),
            call('cookies.7.size', 10),
            call('cookies.8.name', 'a.c'),
            call('cookies.8.size', 10),
            call('cookies.group.1.name', 'b'),
            call('cookies.group.1.size', 43),
            call('cookies.group.2.name', 'a'),
            call('cookies.group.2.size', 20),
            call('cookies.max.name', 'a'),
            call('cookies.max.size', 100),
            call('cookies.max.group.name', 'a'),
            call('cookies.max.group.size', 100),
            call('cookies_total_size', 192),
            call('cookies_unaccounted_size', 3),
            call('cookies_total_num', 9),
            call('cookies.header.size', 238)
        ],
                                                   any_order=True)
コード例 #4
0
    def test_cookie_monitoring_no_cookies(self, mock_set_custom_attribute, mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        mock_request = Mock()
        mock_request.COOKIES = {}

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([call('cookies_total_size', 0)], any_order=True)
コード例 #5
0
    def test_cookie_monitoring(self, mock_set_custom_attribute, mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        mock_request = Mock()
        mock_request.COOKIES = {
            "a": "." * 100,
            "_b": "." * 13,
            "_c_": "." * 13,
            "a.b": "." * 10,
            "a.c": "." * 10,
            "b.": "." * 13,
            "b_a": "." * 15,
            "b_c": "." * 15,
            "d": "." * 3,
        }

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies.1.name', 'a'),
            call('cookies.1.size', 100),
            call('cookies.2.name', 'b_a'),
            call('cookies.2.size', 15),
            call('cookies.3.name', 'b_c'),
            call('cookies.3.size', 15),
            call('cookies.4.name', '_b'),
            call('cookies.4.size', 13),
            call('cookies.5.name', '_c_'),
            call('cookies.5.size', 13),
            call('cookies.6.name', 'b.'),
            call('cookies.6.size', 13),
            call('cookies.7.name', 'a.b'),
            call('cookies.7.size', 10),
            call('cookies.8.name', 'a.c'),
            call('cookies.8.size', 10),
            call('cookies.group.1.name', 'b'),
            call('cookies.group.1.size', 43),
            call('cookies.group.2.name', 'a'),
            call('cookies.group.2.size', 20),
            call('cookies.max.name', 'a'),
            call('cookies.max.size', 100),
            call('cookies.max.group.name', 'a'),
            call('cookies.max.group.size', 100),
            call('cookies_total_size', 192),
            call('cookies_unaccounted_size', 3),
            call('cookies_total_num', 9),
        ], any_order=True)
コード例 #6
0
    def test_basic_cookie_monitoring(self, mock_set_custom_attribute, mock_capture_cookie_sizes):
        mock_capture_cookie_sizes.is_enabled.return_value = False
        middleware = CookieMonitoringMiddleware()

        cookies_dict = {'a': 'b'}

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_called_once_with('cookies.header.size', 3)
コード例 #7
0
    def test_log_encrypted_cookies_no_key(self, mock_encrypt,
                                          mock_capture_cookie_sizes):
        middleware = CookieMonitoringMiddleware()

        cookies_dict = {
            "a": "." * 10,
            "b": "." * 15,
        }

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()

        middleware.process_request(mock_request)
        mock_encrypt.assert_not_called()
コード例 #8
0
    def test_log_encrypted_cookies(self, mock_encrypt,
                                   mock_capture_cookie_sizes):

        middleware = CookieMonitoringMiddleware()

        cookies_dict = {
            "a": "." * 10,
            "b": "." * 15,
        }

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()
        cookie_header = str(mock_request.META.get('HTTP_COOKIE', ''))

        middleware.process_request(mock_request)
        mock_encrypt.assert_has_calls([call(cookie_header, "fake-key")])
コード例 #9
0
    def test_cookie_monitoring_no_cookies(self, mock_set_custom_attribute, mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        cookies_dict = {}

        factory = RequestFactory()
        for name, value in cookies_dict.items():
            factory.cookies[name] = value

        mock_request = factory.request()

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies_total_size', 0),
            call('cookies.header.size', 0)
        ], any_order=True)
コード例 #10
0
    def test_cookie_monitoring_no_groups(self, mock_set_custom_attribute, mock_capture_cookie_sizes):

        mock_capture_cookie_sizes.is_enabled.return_value = True
        middleware = CookieMonitoringMiddleware()

        mock_request = Mock()
        mock_request.COOKIES = {
            "a": "." * 10,
            "b": "." * 15,
        }

        middleware.process_request(mock_request)

        mock_set_custom_attribute.assert_has_calls([
            call('cookies.max.name', 'b'),
            call('cookies.max.size', 15),
            call('cookies.1.name', 'b'),
            call('cookies.1.size', 15),
            call('cookies.2.name', 'a'),
            call('cookies.2.size', 10),
            call('cookies_total_size', 25),
        ], any_order=True)