def test__merge_results_bad_results(self, log_exception): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) # timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, ['invalid input']], ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) with self.assertRaises(Exception): _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) log_exception.assert_called_with("could not parse timeInfo/values from metric '%s': %s" % (pathExpr, 'need more than 1 value to unpack'))
def test__merge_results_bad_results(self, log_exception): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, ['invalid input']], ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) with self.assertRaises(Exception): _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) log_exception.assert_called_with("could not parse timeInfo/values from metric '%s': %s" % (pathExpr, 'need more than 1 value to unpack'))
def test__merge_results_no_remote_store_merge_results(self): pathExpr = 'collectd.test-db.load.value' startTime = datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)), endTime = datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [ pathExpr, [timeInfo, [0, 1, 2, 3, 4, None, None, None, None, None]] ], [pathExpr, [timeInfo, [None, None, None, 3, 4, 5, 6, 7, 8, 9]]], [ pathExpr, [ timeInfo, [None, None, None, None, None, None, None, 7, 8, 9] ] ] ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) with self.settings(REMOTE_STORE_MERGE_RESULTS=False): results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [ TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [None, None, None, 3, 4, 5, 6, 7, 8, 9]), ] self.assertEqual(results, expectedResults)
def test__merge_results_no_results(self, log_debug): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) # timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, None], ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [] self.assertEqual(results, expectedResults) log_debug.assert_called_with("render.datalib.fetchData :: no results for %s.fetch(%s, %s)" % (pathExpr, startTime, endTime))
def test__merge_results_no_results(self, log_debug): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, None], ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [] self.assertEqual(results, expectedResults) log_debug.assert_called_with("render.datalib.fetchData :: no results for %s.fetch(%s, %s)" % (pathExpr, startTime, endTime))
def test__merge_results_no_remote_store_merge_results(self): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, [timeInfo, [0,1,2,3,4,None,None,None,None,None]]], [pathExpr, [timeInfo, [None,None,None,3,4,5,6,7,8,9]]], [pathExpr, [timeInfo, [None,None,None,None,None,None,None,7,8,9]]] ] seriesList = {} requestContext = self._build_requestContext(startTime, endTime) with self.settings(REMOTE_STORE_MERGE_RESULTS=False): results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [ TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [None,None,None,3,4,5,6,7,8,9]), ] self.assertEqual(results, expectedResults)
def test__merge_results_multiple_series_remote_prefetch_data(self): pathExpr = 'collectd.test-db.load.value' startTime = datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)), endTime = datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [ pathExpr, [timeInfo, [0, 1, 2, 3, 4, None, None, None, None, None]] ], [ pathExpr, [timeInfo, [None, None, None, None, None, 5, 6, 7, 8, 9]] ], [ pathExpr, [ timeInfo, [None, None, None, None, None, None, None, 7, 8, 9] ] ], [pathExpr, [timeInfo, [0, 1, 2, 3, 4, None, None, 7, 8, 9]]] ] seriesList = { 'collectd.test-db.cpu.value': TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) } requestContext = self._build_requestContext(startTime, endTime) with self.settings(REMOTE_PREFETCH_DATA=True): results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [ TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), ] self.assertEqual(results, expectedResults)
def test__merge_results_multiple_series(self): pathExpr = 'collectd.test-db.load.value' startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE)) endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE)) timeInfo = [startTime, endTime, 60] result_queue = [ [pathExpr, [timeInfo, [0,1,2,3,4,None,None,None,None,None]]], [pathExpr, [timeInfo, [None,None,None,None,None,5,6,7,8,9]]], [pathExpr, [timeInfo, [None,None,None,None,None,None,None,7,8,9]]], [pathExpr, [timeInfo, [0,1,2,3,4,None,None,7,8,9]]] ] seriesList = { 'collectd.test-db.cpu.value': TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9]) } requestContext = self._build_requestContext(startTime, endTime) results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext) expectedResults = [ TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9]), TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9]), ] self.assertEqual(results, expectedResults)