示例#1
0
def summarize_patch(codereview_hostname, issue, patch, now):
  attempts = [
    summarize_attempt(raw_attempt, now)
    for raw_attempt in get_raw_attempts(codereview_hostname, issue, patch)
  ]
  attempts.reverse()
  return {
    'success': any(attempt['success'] for attempt in attempts),
    'begin': maybe_min(attempt['begin'] for attempt in attempts),
    'end': maybe_max(attempt['end'] for attempt in attempts),
    'durations': {
      field: sum(attempt['durations'][field] for attempt in attempts)
      for field in blank_durations_summary()
    },
    'job_counts': {
      state: sum(len(attempt['jobs'][state]) for attempt in attempts)
      for state in JOB_STATE.itervalues()
    },
    'flaky_jobs': get_flaky_jobs(attempts),
    'attempt_count': len(attempts),
    'attempt_fail_count': sum(
        1
        for attempt in attempts
        if attempt['success'] == False),
    'attempts': attempts,
  }
示例#2
0
def blank_attempt_summary():
  return {
    'success': None,
    'fail_reason': None,
    'begin': None,
    'end': None,
    'durations': blank_durations_summary(),
    'jobs': {state: [] for state in JOB_STATE.itervalues()},
  }
示例#3
0
def blank_attempt_summary():  # pragma: no cover
    return {
        "success": None,
        "fail_reason": None,
        "begin": None,
        "end": None,
        "durations": blank_durations_summary(),
        "jobs": {state: [] for state in JOB_STATE.itervalues()},
    }
示例#4
0
 def summarize_jobs(self, attempt_ended, last_timestamp):
   summaries = {state: [] for state in JOB_STATE.itervalues()}
   for builds in self.jobs.itervalues():
     for jobs in builds.itervalues():
       for job in jobs.itervalues():
         if job['end'] == None:  # pragma: no cover
           if attempt_ended:
             job['end'] = last_timestamp
           job['duration'] = last_timestamp - job['begin']
         summaries[job['state']].append(job)
   for jobs in summaries.itervalues():
     jobs.sort(key=lambda x: x['begin'], reverse=True)
   return summaries
示例#5
0
 def summarize_jobs(self, attempt_ended, last_timestamp):
     summaries = {state: [] for state in JOB_STATE.itervalues()}
     for builds in self.jobs.itervalues():
         for jobs in builds.itervalues():
             for job in jobs.itervalues():
                 if job["end"] == None:
                     if attempt_ended:
                         job["end"] = last_timestamp
                     job["duration"] = last_timestamp - job["begin"]
                 summaries[job["state"]].append(job)
     for jobs in summaries.itervalues():
         jobs.sort(cmp=lambda x, y: cmp(y["begin"], x["begin"]))
     return summaries
示例#6
0
 def summarize_jobs(self, attempt_ended, last_timestamp):
     summaries = {state: [] for state in JOB_STATE.itervalues()}
     for builds in self.jobs.itervalues():
         for jobs in builds.itervalues():
             for job in jobs.itervalues():
                 if job['end'] == None:
                     if attempt_ended:
                         job['end'] = last_timestamp
                     job['duration'] = last_timestamp - job['begin']
                 summaries[job['state']].append(job)
     for jobs in summaries.itervalues():
         jobs.sort(cmp=lambda x, y: cmp(y['begin'], x['begin']))
     return summaries
示例#7
0
def summarize_patch(issue, patch, now):  # pragma: no cover
    attempts = [summarize_attempt(raw_attempt, now) for raw_attempt in get_raw_attempts(issue, patch)][::-1]
    return {
        "success": any(attempt["success"] for attempt in attempts),
        "begin": maybe_min(attempt["begin"] for attempt in attempts),
        "end": maybe_max(attempt["end"] for attempt in attempts),
        "durations": {
            field: sum(attempt["durations"][field] for attempt in attempts) for field in blank_durations_summary()
        },
        "job_counts": {
            state: sum(len(attempt["jobs"][state]) for attempt in attempts) for state in JOB_STATE.itervalues()
        },
        "flaky_jobs": get_flaky_jobs(attempts),
        "attempt_count": len(attempts),
        "attempt_fail_count": sum(1 for attempt in attempts if attempt["success"] == False),
        "attempts": attempts,
    }