Exemplo n.º 1
0
def _MilestoneLabel(alerts):
    """Returns a milestone label string, or None.

  Because revision numbers for other repos may not be easily reconcilable with
  Chromium milestones, do not label them (see
  https://github.com/catapult-project/catapult/issues/2906).
  """
    revisions = [a.end_revision for a in alerts if hasattr(a, 'end_revision')]
    if not revisions:
        return None
    end_revision = min(revisions)
    for a in alerts:
        if a.end_revision == end_revision:
            row_key = utils.GetRowKey(a.test, a.end_revision)
            row = row_key.get()
            if hasattr(row, 'r_commit_pos'):
                end_revision = row.r_commit_pos
            else:
                return None
            break
    try:
        milestone = _GetMilestoneForRevision(end_revision)
    except KeyError:
        logging.error('List of versions not in the expected format')
    if not milestone:
        return None
    logging.info('Matched rev %s to milestone %s.', end_revision, milestone)
    return 'M-%d' % milestone
Exemplo n.º 2
0
def _GetRow(bot, test, rev):
    test_path = bot + '/' + test
    test_key = utils.TestKey(test_path)
    row_key = utils.GetRowKey(test_key, rev)
    row = row_key.get()
    if row:
        return row.value
    return None
Exemplo n.º 3
0
def _GetRow(bot, test, rev):
    test_path = bot + '/' + test
    test_key = utils.TestKey(test_path)
    row_key = utils.GetRowKey(test_key, rev)
    if row_key.get():
        return row_key.get().value
    else:
        return 0
Exemplo n.º 4
0
 def _AddDownstreamRows(self, keys):
     revisions = [1, 2, 1485025126, 1485099999]
     for key in keys:
         testing_common.AddRows(utils.TestPath(key), revisions)
     for key in keys:
         for rev in revisions:
             row_key = utils.GetRowKey(key, rev)
             row = row_key.get()
             row.r_commit_pos = str(rev / 10000)
             row.a_default_rev = 'r_foo'
             row.r_foo = 'abcdefghijk'
             row.put()
Exemplo n.º 5
0
def _GetDisplayRev(bots, tests, rev):
  """Creates a user friendly commit position to display.
  For V8 and ChromiumPerf masters, this will just be the passed in rev.
  """
  if bots and tests:
    test_path = bots[0] + '/' + tests[0]
    test_key = utils.TestKey(test_path)
    row_key = utils.GetRowKey(test_key, rev)
    row = row_key.get()
    if row and hasattr(row, 'r_commit_pos'): # Rule out masters like V8
      if rev != row.r_commit_pos: # Rule out ChromiumPerf
        if hasattr(row, 'a_default_rev') and hasattr(row, row.a_default_rev):
          return row.r_commit_pos + '-' + getattr(row, row.a_default_rev)[:3]
  return rev
Exemplo n.º 6
0
  def testPost_NanFiltered(self):
    self._AddTestColumns(start_rev=15700, end_rev=16000, step=1)

    test_key = utils.OldStyleTestKey('ChromiumGPU/win7/dromaeo/jslib')
    row_key = utils.GetRowKey(test_key, 15900)
    row = row_key.get()
    row.value = float('nan')
    row.put()

    graphs = {'test_path_dict': {'ChromiumGPU/win7/dromaeo/jslib': [],}}
    # If the request is valid, a valid response will be returned.
    response = self.testapp.post('/graph_json', {'graphs': json.dumps(graphs)})
    flot_json_str = response.body
    rows = json.loads(flot_json_str)['data']['0']['data']
    self.assertEqual(149, len(rows))