Index: infra_libs/ts_mon/test/config_test.py |
diff --git a/infra_libs/ts_mon/test/config_test.py b/infra_libs/ts_mon/test/config_test.py |
index fa215721d88f015c0a148b3e2dc7959c2b9a56b8..18718dd8679b876bcbb5a8b67ef3ac5416532b0c 100644 |
--- a/infra_libs/ts_mon/test/config_test.py |
+++ b/infra_libs/ts_mon/test/config_test.py |
@@ -16,6 +16,8 @@ from testing_support import auto_stub |
from infra_libs.ts_mon import config |
from infra_libs.ts_mon.common import interface |
from infra_libs.ts_mon.common import standard_metrics |
+from infra_libs.ts_mon.common import monitors |
+from infra_libs.ts_mon.common import targets |
from infra_libs.ts_mon.common.test import stubs |
import infra_libs |
@@ -24,7 +26,6 @@ class GlobalsTest(auto_stub.TestCase): |
def setUp(self): |
super(GlobalsTest, self).setUp() |
- self.mock(interface, 'state', stubs.MockState()) |
self.mock(config, 'load_machine_config', lambda x: {}) |
def tearDown(self): |
@@ -32,110 +33,89 @@ class GlobalsTest(auto_stub.TestCase): |
# because any FlushThread started by the test is stored in that mock state |
# and needs to be stopped before running any other tests. |
interface.close() |
+ # This should probably live in interface.close() |
+ interface.state = interface.State() |
super(GlobalsTest, self).tearDown() |
@mock.patch('requests.get', autospec=True) |
@mock.patch('socket.getfqdn', autospec=True) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
- @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget', autospec=True) |
- def test_default_monitor_args(self, fake_target, fake_monitor, fake_fqdn, |
- fake_get): |
- singleton = mock.Mock() |
- fake_monitor.return_value = singleton |
- fake_target.return_value = singleton |
+ def test_pubsub_monitor_args(self, fake_fqdn, fake_get): |
fake_fqdn.return_value = 'slave1-a1.reg.tld' |
fake_get.return_value.side_effect = requests.exceptions.ConnectionError |
p = argparse.ArgumentParser() |
config.add_argparse_options(p) |
args = p.parse_args([ |
'--ts-mon-credentials', '/path/to/creds.p8.json', |
- '--ts-mon-endpoint', |
- 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage']) |
+ '--ts-mon-endpoint', 'pubsub://invalid-project/invalid-topic']) |
+ |
config.process_argparse_options(args) |
- fake_monitor.assert_called_once_with( |
- '/path/to/creds.p8.json', |
- 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage', |
- use_instrumented_http=True) |
- self.assertIs(interface.state.global_monitor, singleton) |
- fake_target.assert_called_once_with('reg', 'default', '1', 'slave1-a1') |
- self.assertIs(interface.state.target, singleton) |
+ |
+ self.assertIsInstance(interface.state.global_monitor, |
+ monitors.PubSubMonitor) |
+ |
+ self.assertIsInstance(interface.state.target, targets.DeviceTarget) |
+ self.assertEquals(interface.state.target.hostname, 'slave1-a1') |
+ self.assertEquals(interface.state.target.region, 'reg') |
self.assertEquals(args.ts_mon_flush, 'auto') |
self.assertIsNotNone(interface.state.flush_thread) |
self.assertTrue(standard_metrics.up.get()) |
@mock.patch('requests.get', autospec=True) |
@mock.patch('socket.getfqdn', autospec=True) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
- @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget', autospec=True) |
- def test_default_monitor_args_uppercase_fqdn(self, fake_target, fake_monitor, |
- fake_fqdn, fake_get): |
- singleton = mock.Mock() |
- fake_monitor.return_value = singleton |
- fake_target.return_value = singleton |
+ def test_default_target_uppercase_fqdn(self, fake_fqdn, fake_get): |
fake_fqdn.return_value = 'SLAVE1-A1.REG.TLD' |
fake_get.return_value.side_effect = requests.exceptions.ConnectionError |
p = argparse.ArgumentParser() |
config.add_argparse_options(p) |
args = p.parse_args([ |
'--ts-mon-credentials', '/path/to/creds.p8.json', |
- '--ts-mon-endpoint', |
- 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage']) |
+ '--ts-mon-endpoint', 'unsupported://www.googleapis.com/some/api']) |
config.process_argparse_options(args) |
- fake_target.assert_called_once_with('reg', 'default', '1', 'slave1-a1') |
+ self.assertIsInstance(interface.state.target, targets.DeviceTarget) |
+ self.assertEquals(interface.state.target.hostname, 'slave1-a1') |
+ self.assertEquals(interface.state.target.region, 'reg') |
@mock.patch('requests.get', autospec=True) |
@mock.patch('socket.getfqdn', autospec=True) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
- @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget', autospec=True) |
- def test_fallback_monitor_args(self, fake_target, fake_monitor, fake_fqdn, |
- fake_get): |
- singleton = mock.Mock() |
- fake_monitor.return_value = singleton |
- fake_target.return_value = singleton |
- fake_fqdn.return_value = 'foo' |
+ def test_default_target_fqdn_without_domain(self, fake_fqdn, fake_get): |
+ fake_fqdn.return_value = 'SLAVE1-A1' |
fake_get.return_value.side_effect = requests.exceptions.ConnectionError |
p = argparse.ArgumentParser() |
config.add_argparse_options(p) |
args = p.parse_args([ |
'--ts-mon-credentials', '/path/to/creds.p8.json', |
- '--ts-mon-endpoint', |
- 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage']) |
+ '--ts-mon-endpoint', 'unsupported://www.googleapis.com/some/api']) |
config.process_argparse_options(args) |
- fake_monitor.assert_called_once_with( |
- '/path/to/creds.p8.json', |
- 'https://www.googleapis.com/acquisitions/v1_mon_shared/storage', |
- use_instrumented_http=True) |
- self.assertIs(interface.state.global_monitor, singleton) |
- fake_target.assert_called_once_with('', 'default', '', 'foo') |
- self.assertIs(interface.state.target, singleton) |
+ self.assertIsInstance(interface.state.target, targets.DeviceTarget) |
+ self.assertEquals(interface.state.target.hostname, 'slave1-a1') |
+ self.assertEquals(interface.state.target.region, '') |
+ @mock.patch('requests.get', autospec=True) |
@mock.patch('socket.getfqdn', autospec=True) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
- @mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget', autospec=True) |
- def test_manual_flush(self, fake_target, fake_monitor, fake_fqdn): |
- singleton = mock.Mock() |
- fake_monitor.return_value = singleton |
- fake_target.return_value = singleton |
+ def test_fallback_monitor_args(self, fake_fqdn, fake_get): |
fake_fqdn.return_value = 'foo' |
+ fake_get.return_value.side_effect = requests.exceptions.ConnectionError |
p = argparse.ArgumentParser() |
config.add_argparse_options(p) |
- args = p.parse_args(['--ts-mon-flush', 'manual']) |
+ args = p.parse_args([ |
+ '--ts-mon-credentials', '/path/to/creds.p8.json', |
+ '--ts-mon-endpoint', 'unsupported://www.googleapis.com/some/api']) |
config.process_argparse_options(args) |
- self.assertIsNone(interface.state.flush_thread) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
- def test_monitor_args(self, fake_monitor): |
- singleton = mock.Mock() |
- fake_monitor.return_value = singleton |
+ self.assertIsInstance(interface.state.global_monitor, |
+ monitors.NullMonitor) |
+ |
+ @mock.patch('requests.get', autospec=True) |
+ @mock.patch('socket.getfqdn', autospec=True) |
+ def test_manual_flush(self, fake_fqdn, fake_get): |
+ fake_fqdn.return_value = 'foo' |
+ fake_get.return_value.side_effect = requests.exceptions.ConnectionError |
p = argparse.ArgumentParser() |
config.add_argparse_options(p) |
- args = p.parse_args(['--ts-mon-credentials', '/path/to/creds.p8.json', |
- '--ts-mon-endpoint', 'https://foo.tld/api']) |
+ args = p.parse_args(['--ts-mon-flush', 'manual']) |
+ |
config.process_argparse_options(args) |
- fake_monitor.assert_called_once_with( |
- '/path/to/creds.p8.json', 'https://foo.tld/api', |
- use_instrumented_http=True) |
- self.assertIs(interface.state.global_monitor, singleton) |
+ self.assertIsNone(interface.state.flush_thread) |
@mock.patch('infra_libs.ts_mon.common.monitors.PubSubMonitor', autospec=True) |
def test_pubsub_args(self, fake_monitor): |
@@ -162,9 +142,8 @@ class GlobalsTest(auto_stub.TestCase): |
fake_monitor.assert_called_once_with('foo.txt') |
self.assertIs(interface.state.global_monitor, singleton) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
@mock.patch('infra_libs.ts_mon.common.targets.DeviceTarget', autospec=True) |
- def test_device_args(self, fake_target, _fake_monitor): |
+ def test_device_args(self, fake_target): |
singleton = mock.Mock() |
fake_target.return_value = singleton |
p = argparse.ArgumentParser() |
@@ -179,9 +158,8 @@ class GlobalsTest(auto_stub.TestCase): |
fake_target.assert_called_once_with('reg', 'role', 'net', 'host') |
self.assertIs(interface.state.target, singleton) |
- @mock.patch('infra_libs.ts_mon.api_monitor.ApiMonitor', autospec=True) |
@mock.patch('infra_libs.ts_mon.common.targets.TaskTarget', autospec=True) |
- def test_task_args(self, fake_target, _fake_monitor): |
+ def test_task_args(self, fake_target): |
singleton = mock.Mock() |
fake_target.return_value = singleton |
p = argparse.ArgumentParser() |
@@ -194,7 +172,7 @@ class GlobalsTest(auto_stub.TestCase): |
'--ts-mon-task-hostname', 'host', |
'--ts-mon-task-number', '1']) |
config.process_argparse_options(args) |
- fake_target.assert_called_once_with('serv', 'job' ,'reg', 'host', 1) |
+ fake_target.assert_called_once_with('serv', 'job', 'reg', 'host', 1) |
self.assertIs(interface.state.target, singleton) |
@mock.patch('infra_libs.ts_mon.common.monitors.NullMonitor', autospec=True) |