예제 #1
0
파일: data.py 프로젝트: hangnhat57/Kiwi
    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
예제 #2
0
파일: data.py 프로젝트: hangnhat57/Kiwi
    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
예제 #3
0
    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
예제 #4
0
파일: data.py 프로젝트: sugus86/Kiwi
    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
예제 #5
0
    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
예제 #6
0
    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