OLD | NEW |
| (Empty) |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import unittest | |
6 | |
7 import mock | |
8 | |
9 from infra_libs.ts_mon.common import http_metrics | |
10 from infra_libs.ts_mon.common import interface | |
11 from infra_libs.ts_mon.common import targets | |
12 | |
13 | |
14 class TestHttpMetrics(unittest.TestCase): | |
15 def setUp(self): | |
16 super(TestHttpMetrics, self).setUp() | |
17 target = targets.TaskTarget('test_service', 'test_job', | |
18 'test_region', 'test_host') | |
19 self.mock_state = interface.State(target=target) | |
20 self.state_patcher = mock.patch('infra_libs.ts_mon.common.interface.state', | |
21 new=self.mock_state) | |
22 self.state_patcher.start() | |
23 | |
24 def tearDown(self): | |
25 self.state_patcher.stop() | |
26 super(TestHttpMetrics, self).tearDown() | |
27 | |
28 def test_update_http_server_metrics(self): | |
29 http_metrics.update_http_server_metrics( | |
30 '/', 200, 125.4, | |
31 request_size=100, response_size=200, user_agent='Chrome') | |
32 fields = {'status': 200, 'name': '/', 'is_robot': False} | |
33 self.assertEqual(1, http_metrics.server_response_status.get(fields)) | |
34 self.assertEqual(125.4, http_metrics.server_durations.get(fields).sum) | |
35 self.assertEqual(100, http_metrics.server_request_bytes.get(fields).sum) | |
36 self.assertEqual(200, http_metrics.server_response_bytes.get(fields).sum) | |
37 | |
38 def test_update_http_server_metrics_no_sizes(self): | |
39 http_metrics.update_http_server_metrics('/', 200, 125.4) | |
40 fields = {'status': 200, 'name': '/', 'is_robot': False} | |
41 self.assertEqual(1, http_metrics.server_response_status.get(fields)) | |
42 self.assertEqual(125.4, http_metrics.server_durations.get(fields).sum) | |
43 self.assertIsNone(http_metrics.server_request_bytes.get(fields)) | |
44 self.assertIsNone(http_metrics.server_response_bytes.get(fields)) | |
OLD | NEW |