def test_heartbeat_metric_init_vm(self): with mock.patch('requests.get') as get: get.return_value = MockResponse( 200, json.dumps({ 'vmId': 5, 'subscriptionId': 3, 'osType': 'Linux' })) metric = heartbeat_metrics.HeartbeatMetric() self.assertTrue(metric.is_vm) self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) values = list(metric.properties.values()) self.assertEqual(len(keys), 5) self.assertEqual(len(keys), len(values)) self.assertEqual(keys[0].key, "sdk") self.assertEqual(keys[1].key, "osType") self.assertEqual( values[0].value, 'py{}:oc{}:ext{}'.format( platform.python_version(), opencensus_version, ext_version, )) self.assertEqual(values[1].value, platform.system()) self.assertEqual(keys[2].key, "azInst_vmId") self.assertEqual(values[2].value, 5) self.assertEqual(keys[3].key, "azInst_subscriptionId") self.assertEqual(values[3].value, 3) self.assertEqual(keys[4].key, "azInst_osType") self.assertEqual(values[4].value, "Linux")
def test_heartbeat_metric_init(self): metric = heartbeat_metrics.HeartbeatMetric() self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) values = list(metric.properties.values()) self.assertEqual(len(keys), 2) self.assertEqual(len(keys), len(values)) self.assertEqual(keys[0].key, "sdk") self.assertEqual(keys[1].key, "osType") self.assertEqual( values[0].value, 'py{}:oc{}:ext{}'.format( platform.python_version(), opencensus_version, ext_version, )) self.assertEqual(values[1].value, platform.system()) gauge = metric.heartbeat self.assertEqual(gauge.descriptor.name, 'Heartbeat') self.assertEqual(gauge.descriptor.description, 'Heartbeat metric with custom dimensions') self.assertEqual(gauge.descriptor.unit, 'count') self.assertEqual(gauge.descriptor._type, 1) self.assertEqual(gauge.descriptor.label_keys, list(metric.properties.keys())) self.assertEqual(gauge._len_label_keys, len(metric.properties.keys()))
def test_heartbeat_metric_vm_retry(self): with mock.patch('requests.get', throw(requests.exceptions.RequestException)): metric = heartbeat_metrics.HeartbeatMetric() self.assertFalse(metric.init) self.assertFalse(metric.vm_retry) metric.get_metrics() self.assertTrue(metric.init) self.assertTrue(metric.vm_retry) keys = list(metric.properties.keys()) self.assertEqual(len(keys), 2) self.assertEqual(len(metric.vm_data), 0) with mock.patch('requests.get') as get: get.return_value = MockResponse( 200, json.dumps({ 'vmId': 5, 'subscriptionId': 3, 'osType': 'Linux' })) metric.get_metrics() self.assertFalse(metric.vm_retry) self.assertEqual(len(metric.vm_data), 3) keys = list(metric.properties.keys()) self.assertEqual(len(keys), 5)
def test_heartbeat_metric_init_webapp(self): metric = heartbeat_metrics.HeartbeatMetric() self.assertFalse(metric.init) metric.get_metrics() self.assertTrue(metric.init) self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) values = list(metric.properties.values()) self.assertEqual(len(keys), 5) self.assertEqual(len(keys), len(values)) self.assertEqual(keys[0].key, "sdk") self.assertEqual(keys[1].key, "osType") self.assertEqual( values[0].value, 'py{}:oc{}:ext{}'.format( platform.python_version(), opencensus_version, ext_version, )) self.assertEqual(values[1].value, platform.system()) self.assertEqual(keys[2].key, "appSrv_SiteName") self.assertEqual(keys[3].key, "appSrv_wsStamp") self.assertEqual(keys[4].key, "appSrv_wsHost") self.assertEqual(values[2].value, "site_name") self.assertEqual(values[3].value, "stamp_name") self.assertEqual(values[4].value, "host_name")
def test_heartbeat_metric_not_vm_timeout(self): with mock.patch('requests.get', throw(requests.Timeout)): metric = heartbeat_metrics.HeartbeatMetric() self.assertFalse(metric.is_vm) self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) self.assertEqual(len(keys), 2)
def test_heartbeat_metric_not_vm(self): with mock.patch('requests.get', throw(requests.exceptions.ConnectionError)): metric = heartbeat_metrics.HeartbeatMetric() self.assertFalse(metric.is_vm) self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) self.assertEqual(len(keys), 2)
def test_heartbeat_metric_init_functionapp(self): metric = heartbeat_metrics.HeartbeatMetric() self.assertEqual(metric.NAME, 'Heartbeat') keys = list(metric.properties.keys()) values = list(metric.properties.values()) self.assertEqual(len(keys), 3) self.assertEqual(len(keys), len(values)) self.assertEqual(keys[0].key, "sdk") self.assertEqual(keys[1].key, "osType") self.assertEqual( values[0].value, 'py{}:oc{}:ext{}'.format( platform.python_version(), opencensus_version, ext_version, )) self.assertEqual(values[1].value, platform.system()) self.assertEqual(keys[2].key, "azfunction_appId") self.assertEqual(values[2].value, "host_name")
def test_heartbeat_metric_vm_error_response(self): with mock.patch('requests.get') as get: get.return_value = MockResponse( 200, json.dumps({ 'vmId': 5, 'subscriptionId': 3, 'osType': 'Linux' })) metric = heartbeat_metrics.HeartbeatMetric() self.assertTrue(metric.is_vm) keys = list(metric.properties.keys()) self.assertEqual(len(keys), 5) with mock.patch('requests.get', throw(Exception)): metric.vm_data.clear() self.assertTrue(metric.is_vm) self.assertEqual(len(metric.vm_data), 0) self.assertTrue(metric.is_vm) keys = list(metric.properties.keys()) self.assertEqual(len(keys), 5)
def test_heartbeat_metric_init(self): metric = heartbeat_metrics.HeartbeatMetric() self.assertEqual(len(metric.vm_data), 0) self.assertFalse(metric.vm_retry) self.assertFalse(metric.init) self.assertEqual(len(metric.properties), 0)