Esempio n. 1
0
def FindMagnitudeBetweenCommits(test_key, start_commit, end_commit):
    start_commit = _GitHashToCommitPosition(start_commit)
    end_commit = _GitHashToCommitPosition(end_commit)

    test = test_key.get()
    num_points = anomaly_config.GetAnomalyConfigDict(test).get(
        'min_segment_size', find_change_points.MIN_SEGMENT_SIZE)
    start_rows = graph_data.GetRowsForTestBeforeAfterRev(
        test_key, start_commit, num_points, 0)
    end_rows = graph_data.GetRowsForTestBeforeAfterRev(test_key, end_commit, 0,
                                                       num_points)

    if not start_rows or not end_rows:
        return None

    median_before = math_utils.Median([r.value for r in start_rows])
    median_after = math_utils.Median([r.value for r in end_rows])

    return median_after - median_before
Esempio n. 2
0
def _FetchRowsAroundRev(test, revision, num_before, num_after):
    """Fetches Row entities before and after a given revision.

  Args:
    test: A TestMetadata entity.
    revision: A Row ID.
    num_before: Maximum number of Rows before |revision| to fetch.
    num_after: Max number of Rows starting from |revision| to fetch.

  Returns:
    A list of Row entities ordered by ID. The Row entities will have at least
    the "revision" and "value" properties, which are the only ones relevant
    to their use in this module.
  """
    assert utils.IsInternalUser() or not test.internal_only
    return graph_data.GetRowsForTestBeforeAfterRev(test.key, revision,
                                                   num_before, num_after)