def testAddRows_SuffixesRefProperly(self): test_path0 = 'Chromium/win7/suite/metric_ref' test_path1 = 'Chromium/win7/suite/metric/ref' test_key0 = utils.TestKey(test_path0) test_key1 = utils.TestKey(test_path1) rows_to_put = add_histograms_queue.AddRows(TEST_HISTOGRAM, test_key0, {}, 123, False) rows_to_put += add_histograms_queue.AddRows(TEST_HISTOGRAM, test_key1, {}, 123, False) ndb.put_multi(rows_to_put) rows = graph_data.Row.query().fetch() for row in rows: self.assertTrue(row.key.parent().id().endswith('ref'))
def testAddRows_UsesStandardDeviationProperty(self): test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) hist = histogram_module.Histogram.FromDict(TEST_HISTOGRAM) hist.CustomizeSummaryOptions({ 'avg': True, 'std': False, 'count': False, 'max': False, 'min': False, 'sum': False }) stat_names_to_test_keys = { 'avg': utils.TestKey('Chromium/win7/suite/metric_avg') } rows = add_histograms_queue.AddRows(hist.AsDict(), test_key, stat_names_to_test_keys, 123, False) self.assertEqual(2, len(rows)) ndb.put_multi(rows) row = graph_data.Row.query().fetch()[1] self.assertAlmostEqual(1.0, row.error)
def testAddRows_WithCustomSummaryOptions(self): test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) hist = histogram_module.Histogram.FromDict(TEST_HISTOGRAM) hist.CustomizeSummaryOptions({ 'avg': True, 'std': True, 'count': True, 'max': False, 'min': False, 'sum': False }) stat_names_to_test_keys = { 'avg': utils.TestKey('Chromium/win7/suite/metric_avg'), 'std': utils.TestKey('Chromium/win7/suite/metric_std'), 'count': utils.TestKey('Chromium/win7/suite/metric_count') } rows = add_histograms_queue.AddRows(hist.AsDict(), test_key, stat_names_to_test_keys, 123, False) self.assertEqual(4, len(rows)) ndb.put_multi(rows) row = graph_data.Row.query().fetch()[0] fields = row.to_dict().iterkeys() d_fields = [field for field in fields if field.startswith('d_')] self.assertEqual(1, len(d_fields)) self.assertEqual(3, row.d_count)
def testAddRows_DoesntAddRowForEmptyHistogram(self): hist = histogram_module.Histogram('foo', 'count').AsDict() test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) row = add_histograms_queue.AddRows(hist, test_key, {}, 123, True) rows = graph_data.Row.query().fetch() self.assertEqual(0, len(rows)) self.assertIsNone(row)
def testAddRows_SetsInternalOnly(self): test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) rows_to_put = add_histograms_queue.AddRows(TEST_HISTOGRAM, test_key, {}, 123, True) ndb.put_multi(rows_to_put) rows = graph_data.Row.query().fetch() for row in rows: self.assertTrue(row.internal_only)
def testAddRows_FailsWithNonSingularRevisionInfo(self): test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) hist = copy.deepcopy(TEST_HISTOGRAM) hist['diagnostics'][reserved_infos.CATAPULT_REVISIONS.name] = { 'type': 'GenericSet', 'values': [123, 456]} with self.assertRaises(add_histograms_queue.BadRequestError): add_histograms_queue.AddRows(hist, test_key, {}, 123, False).put()
def testAddRows(self): test_path = 'Chromium/win7/suite/metric' test_key = utils.TestKey(test_path) stat_names_to_test_keys = { 'avg': utils.TestKey('Chromium/win7/suite/metric_avg'), 'std': utils.TestKey('Chromium/win7/suite/metric_std'), 'count': utils.TestKey('Chromium/win7/suite/metric_count'), 'max': utils.TestKey('Chromium/win7/suite/metric_max'), 'min': utils.TestKey('Chromium/win7/suite/metric_min'), 'sum': utils.TestKey('Chromium/win7/suite/metric_sum') } rows_to_put = add_histograms_queue.AddRows(TEST_HISTOGRAM, test_key, stat_names_to_test_keys, 123, False) ndb.put_multi(rows_to_put) rows = graph_data.Row.query().fetch() rows_by_path = {} for row in rows: rows_by_path[row.key.parent().id()] = row avg_row = rows_by_path.pop('Chromium/win7/suite/metric_avg') self.assertAlmostEqual(2.0, avg_row.value) self.assertAlmostEqual(1.0, avg_row.error) std_row = rows_by_path.pop('Chromium/win7/suite/metric_std') self.assertAlmostEqual(1.0, std_row.value) self.assertEqual(None, std_row.error) count_row = rows_by_path.pop('Chromium/win7/suite/metric_count') self.assertEqual(3, count_row.value) self.assertEqual(None, count_row.error) max_row = rows_by_path.pop('Chromium/win7/suite/metric_max') self.assertAlmostEqual(3.0, max_row.value) self.assertEqual(None, max_row.error) min_row = rows_by_path.pop('Chromium/win7/suite/metric_min') self.assertAlmostEqual(1.0, min_row.value) self.assertEqual(None, min_row.error) sum_row = rows_by_path.pop('Chromium/win7/suite/metric_sum') self.assertAlmostEqual(6.0, sum_row.value) self.assertEqual(None, sum_row.error) row = rows_by_path.pop('Chromium/win7/suite/metric') self.assertEqual(0, len(rows_by_path)) fields = row.to_dict().iterkeys() d_fields = [] r_fields = [] a_fields = [] for field in fields: if field.startswith('d_'): d_fields.append(field) elif field.startswith('r_'): r_fields.append(field) elif field.startswith('a_'): a_fields.append(field) self.assertAlmostEqual(2.0, row.value) self.assertAlmostEqual(1.0, row.error) self.assertFalse(row.internal_only) self.assertEqual(4, len(d_fields)) self.assertEqual(3, row.d_count) self.assertAlmostEqual(3.0, row.d_max) self.assertAlmostEqual(1.0, row.d_min) self.assertAlmostEqual(6.0, row.d_sum) self.assertEqual(2, len(r_fields)) self.assertEqual('4cd34ad3320db114ad3a2bd2acc02aba004d0cb4', row.r_v8_git) self.assertEqual('123', row.r_chromium_commit_pos) self.assertEqual(2, len(a_fields)) self.assertEqual('http://google.com/', row.a_tracing_uri) self.assertEqual('http://log.url/', row.a_stdio_url)