def status_matrix(self, form): status_matrix = GroupByResult() query = self._filter_query( form, TestCaseRun.objects.values( 'build', 'build__name', 'run__plan__tag', 'run__plan', 'run__plan__name', 'run', 'run__summary', 'case_run_status__name').annotate(total_count=Count('pk'))) for row in query: tag_id = row['run__plan__tag'] build_id = row['build'] build_name = row['build__name'] plan_id = row['run__plan'] plan_name = row['run__plan__name'] run_id = row['run'] run_summary = row['run__summary'] status_name = row['case_run_status__name'] total_count = row['total_count'] builds = status_matrix.setdefault(tag_id, GroupByResult()) plans = builds.setdefault(Build(pk=build_id, name=build_name), GroupByResult()) runs = plans.setdefault(TestPlan(pk=plan_id, name=plan_name), GroupByResult()) status_subtotal = runs.setdefault( TestRun(pk=run_id, summary=run_summary), GroupByResult()) status_subtotal[status_name] = total_count return status_matrix
def generate_status_matrix(build_ids): matrix_dataset = {} # TODO: replace defaultdict with GroupByResult status_total_line = defaultdict(int) rows = TestCaseRun.objects.filter(build__in=build_ids).values( 'run__plan', 'run__plan__name', 'run', 'run__summary', 'case_run_status__name').annotate( total_count=Count('pk')).order_by('run__plan', 'run') for row in rows: plan_id = row['run__plan'] plan_name = row['run__plan__name'] run_id = row['run'] run_summary = row['run__summary'] status_name = row['case_run_status__name'] status_count = row['total_count'] plan = TestPlan(pk=plan_id, name=plan_name) plan_node = matrix_dataset.setdefault(plan, {}) run = TestRun(pk=run_id, summary=run_summary) run_node = plan_node.setdefault(run, defaultdict(int)) run_node[status_name] = status_count run_node['TOTAL'] += status_count # calculate the last total line status_total_line[status_name] += status_count status_total_line['TOTAL'] += status_count # Add total line to final data set matrix_dataset[None] = status_total_line return matrix_dataset
def generate_status_matrix(self, build_ids): matrix_dataset = {} # TODO: replace defaultdict with GroupByResult status_total_line = defaultdict(int) rows = SQLExecution(sqls.custom_details_status_matrix, params=(build_ids,), with_field_name=False).rows for row in rows: plan_id, plan_name, run_id, run_summary, \ status_name, status_count = row plan = TestPlan(pk=plan_id, name=plan_name) plan_node = matrix_dataset.setdefault(plan, {}) run = TestRun(pk=run_id, summary=run_summary) run_node = plan_node.setdefault(run, defaultdict(int)) run_node[status_name] = status_count run_node['TOTAL'] += status_count # calculate the last total line status_total_line[status_name] += status_count status_total_line['TOTAL'] += status_count # Add total line to final data set matrix_dataset[None] = status_total_line return matrix_dataset
def status_matrix(self, form): query = self._filter_query( form, TestCaseRun.objects.values( 'run__plan', 'run__plan__name', 'build', 'build__name', 'run', 'run__summary', 'case_run_status__name').annotate(total_count=Count('pk'))) status_matrix = GroupByResult() for row in query: plan = TestPlan(pk=row['run__plan'], name=row['run__plan__name']) builds = status_matrix.setdefault(plan, GroupByResult()) build = Build(pk=row['build'], name=row['build__name']) runs = builds.setdefault(build, GroupByResult()) run = TestRun(pk=row['run'], summary=row['run__summary']) status_subtotal = runs.setdefault(run, GroupByResult()) status_subtotal[row['case_run_status__name']] = row['total_count'] return status_matrix
def status_matrix(self, form): sql, params = self._prepare_sql(form, sqls.by_plan_tags_detail_status_matrix) rows = SQLExecution(sql, params, with_field_name=False).rows status_matrix = GroupByResult() for row in rows: (tag_id, build_id, build_name, plan_id, plan_name, run_id, run_summary, status_name, total_count) = row builds = status_matrix.setdefault(tag_id, GroupByResult()) plans = builds.setdefault(TestBuild(pk=build_id, name=build_name), GroupByResult()) runs = plans.setdefault(TestPlan(pk=plan_id, name=plan_name), GroupByResult()) status_subtotal = runs.setdefault( TestRun(pk=run_id, summary=run_summary), GroupByResult()) status_subtotal[status_name] = total_count return status_matrix
def status_matrix(self, form): status_matrix = GroupByResult() query = self._filter_query( form, TestCaseRun.objects.values( 'build', 'build__name', 'run__plan__tag', 'run__plan', 'run__plan__name', 'run', 'run__summary', 'status__name').annotate(total_count=Count('pk'))) for row in query: builds = status_matrix.setdefault(row['run__plan__tag'], GroupByResult()) plans = builds.setdefault( Build(pk=row['build'], name=row['build__name']), GroupByResult()) runs = plans.setdefault( TestPlan(pk=row['run__plan'], name=row['run__plan__name']), GroupByResult()) status_subtotal = runs.setdefault( TestRun(pk=row['run'], summary=row['run__summary']), GroupByResult()) status_subtotal[row['status__name']] = row['total_count'] return status_matrix