def testReadChartJsonValueWithNoTest(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'metric': { 'summary': { 'type': 'list_of_scalar_values', 'values': [0, 1, 2], } } } }), ) quest = read_value.ReadChartJsonValue('metric', None) execution = quest.Start(('output hash', )) execution.Poll() self.assertTrue(execution.completed) self.assertFalse(execution.failed) self.assertEqual(execution.result_values, (0, 1, 2)) self.assertEqual(execution.result_arguments, {}) expected_calls = [ mock.call('output hash'), mock.call('chartjson hash') ] self.assertEqual(retrieve.mock_calls, expected_calls)
def testReadChartJsonValue(self): self.SetOutputFileContents({ 'charts': { 'tir_label@@chart_avg': { 'trace name': { 'type': 'list_of_scalar_values', 'values': [0, 1, 2], } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name', 'avg') execution = quest.Start(None, 'output hash') execution.Poll() self.assertTrue(execution.completed) self.assertFalse(execution.failed) self.assertEqual(execution.result_values, (0, 1, 2)) self.assertEqual(execution.result_arguments, {}) expected_calls = [ mock.call('output hash'), mock.call('output json hash') ] self.assertEqual(self._retrieve.mock_calls, expected_calls)
def testScalar(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'metric': { 'test': { 'type': 'scalar', 'value': 2.5, } } } }), ) quest = read_value.ReadChartJsonValue('metric', 'test') execution = quest.Start(('output hash', )) execution.Poll() self.assertEqual(execution.result_values, (2.5, ))
def testHistogram(self): self.SetOutputFileContents({ 'charts': { 'tir_label@@chart': { 'trace name': { 'type': 'histogram', 'buckets': [ { 'low': 0, 'count': 2 }, { 'low': 0, 'high': 2, 'count': 3 }, ], } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name') execution = quest.Start(None, 'output hash') execution.Poll() self.assertEqual(execution.result_values, (0, 0, 1, 1, 1))
def testScalar(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'tir_label@@chart': { 'trace name': { 'type': 'scalar', 'value': 2.5, } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }), ) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name') execution = quest.Start(None, 'output hash') execution.Poll() self.assertEqual(execution.result_values, (2.5, ))
def testReadChartJsonValueWithNoValues(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'tir_label@@chart': { 'summary': { 'type': 'list_of_scalar_values', 'values': None, } } } }), ) quest = read_value.ReadChartJsonValue('chart', 'tir_label', None) execution = quest.Start(None, 'output hash') execution.Poll() self.assertReadValueError(execution)
def testReadChartJsonValueWithMissingFile(self, retrieve): retrieve.return_value = {'files': {}} quest = read_value.ReadChartJsonValue('metric', 'test') execution = quest.Start(None, 'output hash') execution.Poll() self.assertReadValueError(execution)
def testReadChartJsonValueWithMissingTrace(self): self.SetOutputFileContents({'charts': {'tir_label@@chart': {}}}) quest = read_value.ReadChartJsonValue('metric', 'test') execution = quest.Start(None, 'output hash') execution.Poll() self.assertReadValueError(execution)
def testReadChartJsonValueWithMissingTrace(self, retrieve): retrieve.side_effect = ( {'files': {'chartjson-output.json': {'h': 'chartjson hash'}}}, json.dumps({'charts': {'tir_label@@chart': {}}}), ) quest = read_value.ReadChartJsonValue('metric', 'test') execution = quest.Start(None, 'output hash') execution.Poll() self.assertReadValueError(execution)
def testHistogramWithLargeSample(self, retrieve): retrieve.side_effect = ( {'files': {'chartjson-output.json': {'h': 'chartjson hash'}}}, json.dumps({'charts': {'tir_label@@chart': {'trace': { 'type': 'histogram', 'buckets': [ {'low': 0, 'count': 20000}, {'low': 0, 'high': 2, 'count': 30000}, ], }}}}), ) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace') execution = quest.Start(None, 'output hash') execution.Poll() self.assertEqual(execution.result_values, tuple([0] * 4000 + [1] * 6000))
def testReadChartJsonValueWithNoValues(self): self.SetOutputFileContents({ 'charts': { 'tir_label@@chart': { 'summary': { 'type': 'list_of_scalar_values', 'values': None, } } } }) quest = read_value.ReadChartJsonValue('chart', 'tir_label', None) execution = quest.Start(None, 'output hash') execution.Poll() self.assertReadValueError(execution)
def testReadChartJsonTraceUrls(self): self.SetOutputFileContents({ 'charts': { 'tir_label@@chart_avg': { 'trace name': { 'type': 'list_of_scalar_values', 'values': [0, 1, 2], } }, 'trace': { 'trace name 1': { 'cloud_url': 'trace url', 'page_id': 1 }, 'trace name 2': { 'cloud_url': 'trace url', 'page_id': 2 } }, } }) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name', 'avg') execution = quest.Start(None, 'output hash') execution.Poll() self.assertTrue(execution.completed) self.assertFalse(execution.failed) self.assertEqual(execution.result_values, (0, 1, 2)) self.assertEqual(execution.result_arguments, {}) self.assertEqual( { 'result_values': (0, 1, 2), 'completed': True, 'exception': None, 'result_arguments': {}, 'details': { 'traces': [{ 'url': 'trace url', 'name': 'trace url' }] } }, execution.AsDict())
def testHistogram(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'tir_label@@chart': { 'trace name': { 'type': 'histogram', 'buckets': [ { 'low': 0, 'count': 2 }, { 'low': 0, 'high': 2, 'count': 3 }, ], } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }), ) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name') execution = quest.Start(None, 'output hash') execution.Poll() self.assertEqual(execution.result_values, (0, 0, 1, 1, 1))
def testReadChartJsonValue(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'tir_label@@chart': { 'trace name': { 'type': 'list_of_scalar_values', 'values': [0, 1, 2], } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }), ) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name') execution = quest.Start(None, 'output hash') execution.Poll() self.assertTrue(execution.completed) self.assertFalse(execution.failed) self.assertEqual(execution.result_values, (0, 1, 2)) self.assertEqual(execution.result_arguments, {}) expected_calls = [ mock.call('output hash'), mock.call('chartjson hash') ] self.assertEqual(retrieve.mock_calls, expected_calls)
def testHistogram(self, retrieve): retrieve.side_effect = ( { 'files': { 'chartjson-output.json': { 'h': 'chartjson hash' } } }, json.dumps({ 'charts': { 'metric': { 'test': { 'type': 'histogram', 'buckets': [ { 'low': 0, 'count': 2 }, { 'low': 0, 'high': 2, 'count': 3 }, ], } } } }), ) quest = read_value.ReadChartJsonValue('metric', 'test') execution = quest.Start(('output hash', )) execution.Poll() self.assertEqual(execution.result_values, (0, 0, 1, 1, 1))
def testScalar(self): self.SetOutputFileContents({ 'charts': { 'tir_label@@chart': { 'trace name': { 'type': 'scalar', 'value': 2.5, } }, 'trace': { 'trace name': { 'cloud_url': 'trace url', 'page_id': 1 } }, } }) quest = read_value.ReadChartJsonValue('chart', 'tir_label', 'trace name') execution = quest.Start(None, 'output hash') execution.Poll() self.assertEqual(execution.result_values, (2.5, ))