def test_mock(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda._setMock(mock_data=self.random_string) self.assertEqual(dda.mock, self.random_string)
def test_mock_perf_metric_monitor(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) # Perfomance in this mock is 7865.333333333333 dda._setMock(mock_data={'rc': 200, 'body': self.json_perf_metric_success}) dsa = DynatraceSyntheticAPI(datafeed_api=dda) # Case: OK perf = dsa.monitor_aggregated_performance(monid=123456, warn=8000, crit=9000) self.assertEqual(perf['result_string'], dsa.OK_STRING) self.assertEqual(perf['result_numeric'], dsa.OK_NUMERIC) # Case: WARN perf = dsa.monitor_aggregated_performance(monid=123456, warn=7000, crit=8000) self.assertEqual(perf['result_string'], dsa.WARNING_STRING) self.assertEqual(perf['result_numeric'], dsa.WARNING_NUMERIC) # Case: CRITICAL perf = dsa.monitor_aggregated_performance(monid=123456, warn=2000, crit=7000) self.assertEqual(perf['result_string'], dsa.CRITIAL_STRING) self.assertEqual(perf['result_numeric'], dsa.CRITICAL_NUMERIC)
def test_mock_perf_avail_monitor(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) # Availability in this mock is 0.91234578 dda._setMock(mock_data={'rc': 200, 'body': self.json_avail_metric_success}) dsa = DynatraceSyntheticAPI(datafeed_api=dda) # Case: OK avail = dsa.monitor_aggregated_availability(monid=123456, warn=0.9, crit=0.8) self.assertEqual(avail['result_string'], dsa.OK_STRING) self.assertEqual(avail['result_numeric'], dsa.OK_NUMERIC) # Case: WARN avail = dsa.monitor_aggregated_availability(monid=123456, warn=0.95, crit=0.90) self.assertEqual(avail['result_string'], dsa.WARNING_STRING) self.assertEqual(avail['result_numeric'], dsa.WARNING_NUMERIC) # Case: CRITICAL avail = dsa.monitor_aggregated_availability(monid=123456, warn=0.99, crit=0.98) self.assertEqual(avail['result_string'], dsa.CRITIAL_STRING) self.assertEqual(avail['result_numeric'], dsa.CRITICAL_NUMERIC)
def test_set_proxy(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda.set_proxy('http://proxy.acme.org:123') self.assertDictEqual(dda.proxies, {'http': 'http://proxy.acme.org:123', 'https': 'http://proxy.acme.org:123', 'ftp': False})
def test_export_raw(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda._setMock(mock_data={'rc': 403, 'body': self.json_failed_unauthorized}) dsa = DynatraceSyntheticAPI(datafeed_api=dda) self.assertRaises(ValueError, dsa.export_raw, begin=1, end=2, slot=3, page=4)
def test_mock_avail_metric(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda._setMock(mock_data={'rc': 200, 'body': self.json_avail_metric_success}) dsa = DynatraceSyntheticAPI(datafeed_api=dda) avail = dsa.get_aggregated_availability(monid=12345) self.assertDictEqual(avail, self.avail_data_expect)
def test_objectInitializationDefaults(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) self.assertEqual(dda.api_proto, 'https') self.assertEqual(dda.api_host, 'ultraapi-prod.dynatrace.com') self.assertListEqual(dda.api_path, ['v3.2', 'synthetic']) self.assertDictEqual(dda.api_params, {'login': self.login_exp, 'pass': self.passwordhash_exp, 'format': 'json'}) self.assertFalse(dda.mock)
def test_objectInitialization(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp, api_proto=self.api_proto_exp, api_host=self.api_host_exp, api_version=self.api_version_exp, api_product=self.api_product_exp, format=self.format_exp) self.assertEqual(dda.api_proto, self.api_proto_exp) self.assertEqual(dda.api_host, self.api_host_exp) self.assertListEqual(dda.api_path, [self.api_version_exp, self.api_product_exp]) self.assertDictEqual(dda.api_params, {'login': self.login_exp, 'pass': self.passwordhash_exp, 'format': self.format_exp})
def test_raw(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda.mock = {'body': 'bla'} self.assertRaises(ValueError, dda.raw, metrics='existing', monid=42) self.assertRaises(ValueError, dda.raw, metrics='existing', monid=42, rltime=-23) self.assertRaises(ValueError, dda.raw, metrics='existing', monid=42, rltime=1, tstart=-1) self.assertRaises(ValueError, dda.raw, metrics='existing', monid=42, rltime=1, tstart=2, tend=-23) dda.raw(metrics='existing', monid=42, tstart=2, tend=3, pgeid=19, group='boarding A', header='kopflos', sort='bubble', limit='NEIN!', skip='der skipper', format='c:\\') self.assertEqual(dda.api_params['tstart'], 2) self.assertEqual(dda.api_params['tend'], 3) self.assertEqual(dda.api_params['pgeid'], 19) self.assertEqual(dda.api_params['group'], 'boarding A') self.assertEqual(dda.api_params['header'], 'kopflos') self.assertEqual(dda.api_params['sort'], 'bubble') self.assertEqual(dda.api_params['limit'], 'NEIN!') self.assertEqual(dda.api_params['skip'], 'der skipper') self.assertEqual(dda.api_params['format'], 'c:\\')
def test_mock_list_metric(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda._setMock(mock_data={'rc': 200, 'body': self.json_metrics_success}) dsa = DynatraceSyntheticAPI(datafeed_api=dda) metrics = dsa.list_metrics() item1 = {"mask": "css_3_bttfp_c", "name": "3rd Party CSS Count Before TTFP", "desc": "3rd Party CSS Count Before Time to First Paint", "unit": "number"} item2 = {"mask": "css_3_o_s", "name": "3rd Party CSS Size", "desc": "3rd Party CSS Size", "unit": "b"} self.assertTrue(item1 in metrics) self.assertTrue(item2 in metrics)
def test_mocked_metric_list_content(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) dda._setMock(mock_data={'rc': 200, 'body': self.json_metrics_success}) self.assertEqual(dda.info(list='metrics'), self.json_metrics_success)
def test_url_generation(self): dda = DynatraceDatafeedAPI(login=self.login_exp, passwordhash=self.passwordhash_exp) self.assertEqual(dda._get_rest_url(), self.exp_url)