Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: infra_libs/ts_mon/test/api_monitor_test.py

Issue 1433543003: ts_mon: removed support for https:// endpoints (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 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 os
6 import unittest
7
8 import mock
9
10 from monacq import acquisition_api
11
12 from infra_libs.ts_mon import api_monitor
13 from infra_libs.ts_mon.protos import metrics_pb2
14 import infra_libs
15
16
17 class ApiMonitorTest(unittest.TestCase):
18
19 def test_logging_callback(self):
20 """Smoke test for coverage: should not crash."""
21 api_monitor._logging_callback(200, "OK")
22
23 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api', auto_spec=True)
24 def test_init(self, fake_api):
25 _ = api_monitor.ApiMonitor('/path/to/creds.p8.json', 'https://www.tld/api')
26 # ApiMonitor calls abspath on the credential filename before passing it to
27 # AcquisitionCredential.Load. That doesn't change anything on Linux, but
28 # on Windows it prepends a drive letter and turns /s into \s.
29 fake_api.AcquisitionCredential.Load.assert_called_once_with(
30 os.path.abspath('/path/to/creds.p8.json'))
31 fake_api.AcquisitionApi.assert_called_once_with(
32 fake_api.AcquisitionCredential.Load.return_value,
33 'https://www.tld/api')
34
35 def test_init_gce_credential(self):
36 with self.assertRaises(NotImplementedError):
37 api_monitor.ApiMonitor(':gce', 'https://www.tld/api')
38
39 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api', auto_spec=True)
40 def test_send(self, _fake_api):
41 m = api_monitor.ApiMonitor('/path/to/creds.p8.json', 'https://www.tld/api')
42 metric1 = metrics_pb2.MetricsData(name='m1')
43 m.send(metric1)
44 metric2 = metrics_pb2.MetricsData(name='m2')
45 m.send([metric1, metric2])
46 collection = metrics_pb2.MetricsCollection(data=[metric1, metric2])
47 m.send(collection)
48 self.assertEquals(m._api.Send.call_count, 3)
49
50 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api', auto_spec=True)
51 def test_instrumented(self, fake_api):
52 m = api_monitor.ApiMonitor('/path/to/creds.p8.json', 'https://www.tld/api')
53 m.send(metrics_pb2.MetricsData(name='m1'))
54
55 api = fake_api.AcquisitionApi.return_value
56 api.SetHttp.assert_called_once()
57 self.assertIsInstance(api.SetHttp.call_args[0][0],
58 infra_libs.httplib2_utils.InstrumentedHttp)
59
60 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api', auto_spec=True)
61 def test_not_instrumented(self, fake_api):
62 m = api_monitor.ApiMonitor('/path/to/creds.p8.json', 'https://www.tld/api',
63 use_instrumented_http=False)
64 m.send(metrics_pb2.MetricsData(name='m1'))
65
66 self.assertFalse(fake_api.SetHttp.called)
67
68 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api.'
69 'AcquisitionCredential', auto_spec=True)
70 @mock.patch('infra_libs.ts_mon.api_monitor.acquisition_api.AcquisitionApi',
71 auto_spec=True)
72 def test_failed_request_should_not_crash(self, _fake_api, _fake_creds):
73 m = api_monitor.ApiMonitor('/path/to/creds.p8.json', 'https://www.tld/api')
74 m._api.Send.side_effect = acquisition_api.AcquisitionApiRequestException()
75 m.send(metrics_pb2.MetricsData(name='m1'))
76
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698