def setUp(self): super(TSMonJSHandlerTest, self).setUp() config.reset_for_unittest() target = targets.TaskTarget('test_service', 'test_job', 'test_region', 'test_host') self.mock_state = interface.State(target=target) mock.patch('infra_libs.ts_mon.common.interface.state', new=self.mock_state).start() self.request = webapp2.Request.blank('/_/ts_mon_js') self.response = webapp2.Response() self.ts_mon_handler = handlers.TSMonJSHandler(request=self.request, response=self.response) self.ts_mon_handler.register_metrics([ metrics.BooleanMetric( 'frontend/boolean_test', 'Boolean metric test', field_spec=[metrics.StringField('client_id')]), ]) self.ts_mon_handler.xsrf_is_valid = mock.Mock(return_value=True) self.mock_timestamp = 1537821859 def time_fn(): return self.mock_timestamp self.ts_mon_handler.time_fn = time_fn
def test_non_bool_raises(self): m = metrics.BooleanMetric('test') with self.assertRaises(errors.MonitoringInvalidValueTypeError): m.set(object()) with self.assertRaises(errors.MonitoringInvalidValueTypeError): m.set('True') with self.assertRaises(errors.MonitoringInvalidValueTypeError): m.set(123)
def test_set(self): m = metrics.BooleanMetric('test') m.set(False) self.assertEquals(m.get(), False)
def test_populate_value(self): pb = metrics_pb2.MetricsData() m = metrics.BooleanMetric('test') m._populate_value(pb, True, 1234) self.assertEquals(pb.boolean_value, True)
def test_is_cumulative(self): m = metrics.BooleanMetric('test', 'test', None) self.assertFalse(m.is_cumulative())
def test_generate_proto(self): proto = self._test_proto(metrics.BooleanMetric('test', 'test', None), lambda m: m.set(True), metrics_pb2.BOOL, metrics_pb2.GAUGE) self.assertTrue(proto.bool_value)
# Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Metrics common to all tasks and devices.""" from infra_libs.ts_mon.common import metrics up = metrics.BooleanMetric( 'presence/up', 'Set to True when the program is running, missing otherwise.', None) def init(): # TODO(dsansome): Add more metrics for git revision, cipd package version, # uptime, etc. up.set(True)