82
83
for test_run in match.test_runs:
83
84
name = test_run.test.test_id
84
85
denorm = test_run.denormalization
86
if denorm.count_pass == denorm.count_all():
89
90
bug_ids = sorted([b.bug_id for b in test_run.launchpad_bugs.all()])
90
91
test_run_data = dict(
92
94
uuid=test_run.analyzer_assigned_uuid,
93
95
passes=denorm.count_pass,
94
total=denorm.count_pass + denorm.count_fail,
96
total=denorm.count_all(),
95
97
link=test_run.get_permalink(),
98
if match.tag not in build_number_to_cols:
99
# This assumes 1 bundle per match...
100
build_number_to_cols[match.tag] = {
100
if (match.tag, test_run.bundle.uploaded_on) not in build_number_to_cols:
101
build_number_to_cols[(match.tag, test_run.bundle.uploaded_on)] = {
102
103
'number': match.tag,
104
'date': test_run.bundle.uploaded_on,
105
'link': test_run.bundle.get_absolute_url(),
106
'date': test_run.bundle.uploaded_on,
107
'link': test_run.bundle.get_absolute_url(),
109
if bundle_data not in build_number_to_cols[match.tag]['bundles']:
110
build_number_to_cols[match.tag]['bundles'].append(
112
'date': test_run.bundle.uploaded_on,
113
'link': test_run.bundle.get_absolute_url(),
115
build_number_to_cols[match.tag]['test_runs'].setdefault(
116
name, []).append(test_run_data)
107
build_number_to_cols[(match.tag, test_run.bundle.uploaded_on)]['test_runs'][name] = test_run_data
117
108
if name != 'lava':
118
109
test_run_names.add(name)
128
119
for test_run_name in test_run_names:
131
row_data.append(col['test_runs'].get(test_run_name, []))
122
test_run_data = col['test_runs'].get(test_run_name)
123
if not test_run_data:
124
test_run_data = dict(
128
row_data.append(test_run_data)
132
129
table_data.append(row_data)
134
131
return render_to_response(