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

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

Issue 1260293009: make version of ts_mon compatible with appengine (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: add noncululativedistribution metric to ts_mon imports Created 5 years, 4 months 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
« no previous file with comments | « infra_libs/ts_mon/targets.py ('k') | infra_libs/ts_mon/test/distribution_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import argparse 5 import argparse
6 import json 6 import json
7 import requests 7 import requests
8 import tempfile 8 import tempfile
9 import unittest 9 import unittest
10 10
11 import mock 11 import mock
12 12
13 from testing_support import auto_stub 13 from testing_support import auto_stub
14 14
15 from infra_libs.ts_mon import config 15 from infra_libs.ts_mon import config
16 from infra_libs.ts_mon import interface 16 from infra_libs.ts_mon import interface
17 from infra_libs.ts_mon import standard_metrics 17 from infra_libs.ts_mon.common import standard_metrics
18 from infra_libs.ts_mon.test import stubs 18 from infra_libs.ts_mon.test import stubs
19 19
20 20
21 class GlobalsTest(auto_stub.TestCase): 21 class GlobalsTest(auto_stub.TestCase):
22 22
23 def setUp(self): 23 def setUp(self):
24 super(GlobalsTest, self).setUp() 24 super(GlobalsTest, self).setUp()
25 self.mock(interface, 'state', stubs.MockState()) 25 self.mock(interface, 'state', stubs.MockState())
26 self.mock(config, 'load_machine_config', lambda x: {}) 26 self.mock(config, 'load_machine_config', lambda x: {})
27 27
28 def tearDown(self): 28 def tearDown(self):
29 # It's important to call close() before un-setting the mock state object, 29 # It's important to call close() before un-setting the mock state object,
30 # because any FlushThread started by the test is stored in that mock state 30 # because any FlushThread started by the test is stored in that mock state
31 # and needs to be stopped before running any other tests. 31 # and needs to be stopped before running any other tests.
32 interface.close() 32 interface.close()
33 super(GlobalsTest, self).tearDown() 33 super(GlobalsTest, self).tearDown()
34 34
35 @mock.patch('requests.get') 35 @mock.patch('requests.get')
36 @mock.patch('socket.getfqdn') 36 @mock.patch('socket.getfqdn')
37 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor') 37 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor')
38 @mock.patch('infra_libs.ts_mon.targets.DeviceTarget') 38 @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget')
39 def test_default_monitor_args(self, fake_target, fake_monitor, fake_fqdn, 39 def test_default_monitor_args(self, fake_target, fake_monitor, fake_fqdn,
40 fake_get): 40 fake_get):
41 singleton = mock.Mock() 41 singleton = mock.Mock()
42 fake_monitor.return_value = singleton 42 fake_monitor.return_value = singleton
43 fake_target.return_value = singleton 43 fake_target.return_value = singleton
44 fake_fqdn.return_value = 'slave1-a1.reg.tld' 44 fake_fqdn.return_value = 'slave1-a1.reg.tld'
45 fake_get.return_value.side_effect = requests.exceptions.ConnectionError 45 fake_get.return_value.side_effect = requests.exceptions.ConnectionError
46 p = argparse.ArgumentParser() 46 p = argparse.ArgumentParser()
47 config.add_argparse_options(p) 47 config.add_argparse_options(p)
48 args = p.parse_args([ 48 args = p.parse_args([
49 '--ts-mon-credentials', '/path/to/creds.p8.json', 49 '--ts-mon-credentials', '/path/to/creds.p8.json',
50 '--ts-mon-endpoint', 50 '--ts-mon-endpoint',
51 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage']) 51 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage'])
52 config.process_argparse_options(args) 52 config.process_argparse_options(args)
53 fake_monitor.assert_called_once_with( 53 fake_monitor.assert_called_once_with(
54 '/path/to/creds.p8.json', 54 '/path/to/creds.p8.json',
55 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage', 55 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage',
56 use_instrumented_http=True) 56 use_instrumented_http=True)
57 self.assertIs(interface.state.global_monitor, singleton) 57 self.assertIs(interface.state.global_monitor, singleton)
58 fake_target.assert_called_once_with('reg', '1', 'slave1-a1') 58 fake_target.assert_called_once_with('reg', '1', 'slave1-a1')
59 self.assertIs(interface.state.default_target, singleton) 59 self.assertIs(interface.state.default_target, singleton)
60 self.assertEquals(args.ts_mon_flush, 'auto') 60 self.assertEquals(args.ts_mon_flush, 'auto')
61 self.assertIsNotNone(interface.state.flush_thread) 61 self.assertIsNotNone(interface.state.flush_thread)
62 self.assertTrue(standard_metrics.up.get()) 62 self.assertTrue(standard_metrics.up.get())
63 63
64 @mock.patch('requests.get') 64 @mock.patch('requests.get')
65 @mock.patch('socket.getfqdn') 65 @mock.patch('socket.getfqdn')
66 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor') 66 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor')
67 @mock.patch('infra_libs.ts_mon.targets.DeviceTarget') 67 @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget')
68 def test_fallback_monitor_args(self, fake_target, fake_monitor, fake_fqdn, 68 def test_fallback_monitor_args(self, fake_target, fake_monitor, fake_fqdn,
69 fake_get): 69 fake_get):
70 singleton = mock.Mock() 70 singleton = mock.Mock()
71 fake_monitor.return_value = singleton 71 fake_monitor.return_value = singleton
72 fake_target.return_value = singleton 72 fake_target.return_value = singleton
73 fake_fqdn.return_value = 'foo' 73 fake_fqdn.return_value = 'foo'
74 fake_get.return_value.side_effect = requests.exceptions.ConnectionError 74 fake_get.return_value.side_effect = requests.exceptions.ConnectionError
75 p = argparse.ArgumentParser() 75 p = argparse.ArgumentParser()
76 config.add_argparse_options(p) 76 config.add_argparse_options(p)
77 args = p.parse_args([ 77 args = p.parse_args([
78 '--ts-mon-credentials', '/path/to/creds.p8.json', 78 '--ts-mon-credentials', '/path/to/creds.p8.json',
79 '--ts-mon-endpoint', 79 '--ts-mon-endpoint',
80 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage']) 80 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage'])
81 config.process_argparse_options(args) 81 config.process_argparse_options(args)
82 fake_monitor.assert_called_once_with( 82 fake_monitor.assert_called_once_with(
83 '/path/to/creds.p8.json', 83 '/path/to/creds.p8.json',
84 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage', 84 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage',
85 use_instrumented_http=True) 85 use_instrumented_http=True)
86 self.assertIs(interface.state.global_monitor, singleton) 86 self.assertIs(interface.state.global_monitor, singleton)
87 fake_target.assert_called_once_with('', '', 'foo') 87 fake_target.assert_called_once_with('', '', 'foo')
88 self.assertIs(interface.state.default_target, singleton) 88 self.assertIs(interface.state.default_target, singleton)
89 89
90 @mock.patch('socket.getfqdn') 90 @mock.patch('socket.getfqdn')
91 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor') 91 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor')
92 @mock.patch('infra_libs.ts_mon.targets.DeviceTarget') 92 @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget')
93 def test_manual_flush(self, fake_target, fake_monitor, fake_fqdn): 93 def test_manual_flush(self, fake_target, fake_monitor, fake_fqdn):
94 singleton = mock.Mock() 94 singleton = mock.Mock()
95 fake_monitor.return_value = singleton 95 fake_monitor.return_value = singleton
96 fake_target.return_value = singleton 96 fake_target.return_value = singleton
97 fake_fqdn.return_value = 'foo' 97 fake_fqdn.return_value = 'foo'
98 p = argparse.ArgumentParser() 98 p = argparse.ArgumentParser()
99 config.add_argparse_options(p) 99 config.add_argparse_options(p)
100 args = p.parse_args(['--ts-mon-flush', 'manual']) 100 args = p.parse_args(['--ts-mon-flush', 'manual'])
101 config.process_argparse_options(args) 101 config.process_argparse_options(args)
102 self.assertIsNone(interface.state.flush_thread) 102 self.assertIsNone(interface.state.flush_thread)
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 singleton = mock.Mock() 164 singleton = mock.Mock()
165 fake_monitor.return_value = singleton 165 fake_monitor.return_value = singleton
166 p = argparse.ArgumentParser() 166 p = argparse.ArgumentParser()
167 config.add_argparse_options(p) 167 config.add_argparse_options(p)
168 args = p.parse_args(['--ts-mon-endpoint', 'file://foo.txt']) 168 args = p.parse_args(['--ts-mon-endpoint', 'file://foo.txt'])
169 config.process_argparse_options(args) 169 config.process_argparse_options(args)
170 fake_monitor.assert_called_once_with('foo.txt') 170 fake_monitor.assert_called_once_with('foo.txt')
171 self.assertIs(interface.state.global_monitor, singleton) 171 self.assertIs(interface.state.global_monitor, singleton)
172 172
173 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor') 173 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor')
174 @mock.patch('infra_libs.ts_mon.targets.DeviceTarget') 174 @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget')
175 def test_device_args(self, fake_target, _fake_monitor): 175 def test_device_args(self, fake_target, _fake_monitor):
176 singleton = mock.Mock() 176 singleton = mock.Mock()
177 fake_target.return_value = singleton 177 fake_target.return_value = singleton
178 p = argparse.ArgumentParser() 178 p = argparse.ArgumentParser()
179 config.add_argparse_options(p) 179 config.add_argparse_options(p)
180 args = p.parse_args(['--ts-mon-credentials', '/path/to/creds.p8.json', 180 args = p.parse_args(['--ts-mon-credentials', '/path/to/creds.p8.json',
181 '--ts-mon-target-type', 'device', 181 '--ts-mon-target-type', 'device',
182 '--ts-mon-device-region', 'reg', 182 '--ts-mon-device-region', 'reg',
183 '--ts-mon-device-network', 'net', 183 '--ts-mon-device-network', 'net',
184 '--ts-mon-device-hostname', 'host']) 184 '--ts-mon-device-hostname', 'host'])
185 config.process_argparse_options(args) 185 config.process_argparse_options(args)
186 fake_target.assert_called_once_with('reg', 'net', 'host') 186 fake_target.assert_called_once_with('reg', 'net', 'host')
187 self.assertIs(interface.state.default_target, singleton) 187 self.assertIs(interface.state.default_target, singleton)
188 188
189 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor') 189 @mock.patch('infra_libs.ts_mon.monitors.ApiMonitor')
190 @mock.patch('infra_libs.ts_mon.targets.TaskTarget') 190 @mock.patch('infra_libs.ts_mon.common.targets.TaskTarget')
191 def test_task_args(self, fake_target, _fake_monitor): 191 def test_task_args(self, fake_target, _fake_monitor):
192 singleton = mock.Mock() 192 singleton = mock.Mock()
193 fake_target.return_value = singleton 193 fake_target.return_value = singleton
194 p = argparse.ArgumentParser() 194 p = argparse.ArgumentParser()
195 config.add_argparse_options(p) 195 config.add_argparse_options(p)
196 args = p.parse_args(['--ts-mon-credentials', '/path/to/creds.p8.json', 196 args = p.parse_args(['--ts-mon-credentials', '/path/to/creds.p8.json',
197 '--ts-mon-target-type', 'task', 197 '--ts-mon-target-type', 'task',
198 '--ts-mon-task-service-name', 'serv', 198 '--ts-mon-task-service-name', 'serv',
199 '--ts-mon-task-job-name', 'job', 199 '--ts-mon-task-job-name', 'job',
200 '--ts-mon-task-region', 'reg', 200 '--ts-mon-task-region', 'reg',
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 246
247 def test_load_machine_config_bad(self): 247 def test_load_machine_config_bad(self):
248 with tempfile.NamedTemporaryFile() as fh: 248 with tempfile.NamedTemporaryFile() as fh:
249 fh.write('not a json file') 249 fh.write('not a json file')
250 fh.flush() 250 fh.flush()
251 with self.assertRaises(ValueError): 251 with self.assertRaises(ValueError):
252 config.load_machine_config(fh.name) 252 config.load_machine_config(fh.name)
253 253
254 def test_load_machine_config_not_exists(self): 254 def test_load_machine_config_not_exists(self):
255 self.assertEquals({}, config.load_machine_config('does not exist')) 255 self.assertEquals({}, config.load_machine_config('does not exist'))
OLDNEW
« no previous file with comments | « infra_libs/ts_mon/targets.py ('k') | infra_libs/ts_mon/test/distribution_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698