Index: infra/tools/antibody/compute_stats.py |
diff --git a/infra/tools/antibody/compute_stats.py b/infra/tools/antibody/compute_stats.py |
index 7490b6dcfa9518395967bbb8382df92fd02f993f..426e9e9858d6e63229753088487ec914ff573437 100644 |
--- a/infra/tools/antibody/compute_stats.py |
+++ b/infra/tools/antibody/compute_stats.py |
@@ -39,10 +39,10 @@ def totaled_ratio_calculator(numerator, denominator): |
Return: |
ratio(float): a ratio rounded to three decimal places |
""" |
- if denominator != 0: |
+ if denominator != 0: |
ratio = round(float(numerator) / denominator, 3) |
else: |
- raise ZeroDivisionError |
+ ratio = 0 |
return ratio |
@@ -303,7 +303,7 @@ def totaled_total_tbr(cc, sql_time_specification): # pragma: no cover |
return int(result[0]) |
-def totaled_tbr_no_lgtm(cc, sql_time_specification): # pragma: no cover |
+def totaled_tbr_no_lgtm(cc, sql_time_specification): |
"""Counts the number of commits with a TBR that have not been lgtm'ed |
in a given timeframe |
@@ -313,9 +313,12 @@ def totaled_tbr_no_lgtm(cc, sql_time_specification): # pragma: no cover |
returned results |
Return: |
- result(int): a count of all commits with a TBR and no lgtm |
+ count(int): a count of all commits with a TBR and no lgtm |
+ results(list): a list of lists with all tbr'ed commits with no lgtm in the |
+ format [rietveld_url, git_timestamp, git_subject, git_hash] |
""" |
- cc.execute("""SELECT COUNT(*) |
+ cc.execute("""SELECT git_commit.review_url, git_commit.timestamp, |
+ git_commit.subject, git_commit.hash |
FROM review |
INNER JOIN git_commit |
ON review.review_url = git_commit.review_url |
@@ -329,8 +332,11 @@ def totaled_tbr_no_lgtm(cc, sql_time_specification): # pragma: no cover |
ON review.review_url = lgtm_count.review_url |
WHERE lgtm_count.c = 0 OR lgtm_count.c IS NULL |
AND commit_people.type = 'tbr' AND %s""" % sql_time_specification) |
- result = cc.fetchone() |
- return int(result[0]) |
+ result = cc.fetchall() |
+ count = len(result) |
+ results = [[commit[0], commit[1].strftime("%Y-%m-%d %H:%M:%S"), |
+ commit[2], commit[3]] for commit in result] |
+ return count, results |
def totaled_blank_tbr(cc, sql_time_specification): # pragma: no cover |
@@ -343,19 +349,25 @@ def totaled_blank_tbr(cc, sql_time_specification): # pragma: no cover |
returned results |
Return: |
- result(int): a count of all blank TBRs (TBR=) |
+ count(int): a count of all blank TBRs (TBR=) |
+ results(list): a list of lists with all tbr'ed commits with no lgtm in the |
+ format [rietveld_url, git_timestamp, git_subject, git_hash] |
""" |
- cc.execute("""SELECT COUNT(*) |
+ cc.execute("""SELECT git_commit.review_url, git_commit.timestamp, |
+ git_commit.subject, git_commit.hash |
FROM commit_people |
INNER JOIN git_commit |
ON commit_people.git_commit_hash = git_commit.hash |
WHERE commit_people.people_email_address = 'NOBODY' |
AND %s""" % sql_time_specification) |
- result = cc.fetchone() |
- return int(result[0]) |
+ result = cc.fetchall() |
+ count = len(result) |
+ results = [[commit[0], commit[1].strftime("%Y-%m-%d %H:%M:%S"), |
+ commit[2], commit[3]] for commit in result] |
+ return count, results |
-def totaled_no_review_url(cc, sql_time_specification): # pragma: no cover |
+def totaled_no_review_url(cc, sql_time_specification): # pragma: no cover |
"""Counts the number of commits with no review url in a given timeframe |
Args: |
@@ -364,13 +376,19 @@ def totaled_no_review_url(cc, sql_time_specification): # pragma: no cover |
returned results |
Return: |
- result(int): a count of all commits with no review_url |
+ count(int): a count of all commits with no review_url |
+ results(list): a list of lists with all tbr'ed commits with no lgtm in the |
+ format [rietveld_url, git_timestamp, git_subject, git_hash] |
""" |
- cc.execute("""SELECT COUNT(*) |
+ cc.execute("""SELECT git_commit.review_url, git_commit.timestamp, |
+ git_commit.subject, git_commit.hash |
FROM git_commit |
WHERE review_url IS NULL AND %s""" % sql_time_specification) |
- result = cc.fetchone() |
- return int(result[0]) |
+ result = cc.fetchall() |
+ count = len(result) |
+ results = [[commit[0], commit[1].strftime("%Y-%m-%d %H:%M:%S"), |
+ commit[2], commit[3]] for commit in result] |
+ return count, results |
# TODO(keelerh): change the SQL query to avoid using temporary tables |
@@ -490,8 +508,10 @@ def compute_stats_by_time(cc): # pragma: no cover |
Returns: |
output(list): three dictionaries containing stats for the past 7 days, 30 |
days, and all time respectively, each including timeframe, |
- suspicious_to_total_ratio, total_commits, tbr_no_lgtm, |
- no_review_url, blank_tbr |
+ suspicious_to_total_ratio, a count of the number of commits |
+ for total_commits, tbr_no_lgtm, no_review_url, and blank_tbr, |
+ and a list of lists with the relevant commits for |
+ tbr_no_lgtm, no_review_url, and blank_tbr |
""" |
stats_7_days = {'timeframe': '7_days'} |
stats_30_days = {'timeframe': '30_days'} |
@@ -508,9 +528,16 @@ def compute_stats_by_time(cc): # pragma: no cover |
d['suspicious_to_total_ratio'] = totaled_ratio_calculator(tot_suspicious, |
tot_commits) |
d['total_commits'] = tot_commits |
- d['tbr_no_lgtm'] = totaled_tbr_no_lgtm(cc, sql_insert) |
- d['no_review_url'] = totaled_no_review_url(cc, sql_insert) |
- d['blank_tbr'] = totaled_blank_tbr(cc, sql_insert) |
+ count_tbr_no_lgtm, tbr_no_lgtm_commits = totaled_tbr_no_lgtm(cc, sql_insert) |
+ d['tbr_no_lgtm'] = count_tbr_no_lgtm |
+ d['tbr_no_lgtm_commits'] = tbr_no_lgtm_commits |
+ count_no_review_url, no_review_url_commits = totaled_no_review_url( |
+ cc, sql_insert) |
+ d['no_review_url'] = count_no_review_url |
+ d['no_review_url_commits'] = no_review_url_commits |
+ count_blank_tbr, blank_tbr_commits = totaled_blank_tbr(cc, sql_insert) |
+ d['blank_tbr'] = count_blank_tbr |
+ d['blank_tbr_commits'] = blank_tbr_commits |
output = [stats_7_days, stats_30_days, stats_all_time] |
return output |