80
80
return HttpResponse(t.render(c))
82
82
def stack_list(request):
83
stack_list = Cu2dStack.objects.all()
83
stack_list = CoverageStack.objects.all()
84
84
t = loader.get_template('stack_list.html')
85
85
c = Context({'stack_list': stack_list})
86
86
return HttpResponse(t.render(c))
89
88
def stack(request, stack_name):
90
stack = Cu2dStack.objects.get(name=stack_name)
91
stack_list = Cu2dStack.objects.all()
92
project_list = CoverageProject.objects.filter(stack=stack)
94
coverage_jobs = [project.autolanding_primary_job for project in project_list]
89
stack = CoverageStack.objects.get(name=stack_name)
90
stack_list = CoverageStack.objects.all()
91
project_list = CoverageProject.objects.filter(
92
stack__name=stack_name)
95
93
coverage_builds = CoverageBuild.objects.filter(
96
jenkins_job__in=coverage_jobs,
97
coverage_report__isnull=False).order_by('timestamp')
94
project__in=project_list)
99
97
for build in coverage_builds:
100
98
# for every time point, compute stack coverage percentages
101
99
hit_sum = line_sum = taken_sum = total_sum = 0
102
100
for project in project_list:
103
coverage_build = project.last_coverage_build(build.timestamp)
105
line_sum += coverage_build.line_count
106
hit_sum += coverage_build.hit_count
107
total_sum += coverage_build.total_count
108
taken_sum += coverage_build.taken_count
101
coverage_data = CoverageData.objects.get(
102
coverage_build=build)
104
line_sum += coverage_data.line_count
105
hit_sum += coverage_data.hit_count
106
total_sum += coverage_data.total_count
107
taken_sum += coverage_data.taken_count
110
109
line_coverage = float(hit_sum) / float(line_sum)
111
110
except ZeroDivisionError:
114
113
branch_coverage = float(taken_sum) / float(total_sum)
115
114
except ZeroDivisionError:
116
115
branch_coverage = 0
117
data.append({'timestamp': build.timestamp,
116
data.append({'timestamp': build.ran_at,
118
117
'line coverage': line_coverage,
119
118
'branch coverage': branch_coverage})
120
119
columns_order = ['timestamp',