예제 #1
0
    def test_in_loop(self):

        test_plan = TestPlanFactory()
        test_run = TestRunFactory()
        test_case_one = TestCaseFactory()
        test_case_two = TestCaseFactory()

        test_plan.add_tag(self.tag_one)
        test_plan.add_tag(self.tag_two)
        test_plan.add_tag(self.tag_three)

        test_case_one.add_tag(self.tag_one)
        test_case_one.add_tag(self.tag_three)

        test_run.add_tag(self.tag_two)

        test_case_two.add_tag(self.tag_three)

        test_plan_tags = TestPlanTag.objects.filter(
            tag__in=self.tags).values('tag').annotate(
                num_plans=Count('tag')).order_by('tag')
        test_case_tags = TestCaseTag.objects.filter(
            tag__in=self.tags).values('tag').annotate(
                num_cases=Count('tag')).order_by('tag')
        test_run_tags = TestRunTag.objects.filter(
            tag__in=self.tags).values('tag').annotate(
                num_runs=Count('tag')).order_by('tag')

        plan_counter = _TagCounter('num_plans', test_plan_tags)
        case_counter = _TagCounter('num_cases', test_case_tags)
        run_counter = _TagCounter('num_runs', test_run_tags)

        for tag in self.tags:
            tag.num_plans = plan_counter.calculate_tag_count(tag)
            tag.num_cases = case_counter.calculate_tag_count(tag)
            tag.num_runs = run_counter.calculate_tag_count(tag)

        self.assertEqual(self.tag_one.num_plans, 1)
        self.assertEqual(self.tag_two.num_plans, 1)
        self.assertEqual(self.tag_three.num_plans, 1)

        self.assertEqual(self.tag_one.num_cases, 1)
        self.assertEqual(self.tag_two.num_cases, 0)
        self.assertEqual(self.tag_three.num_cases, 2)

        self.assertEqual(self.tag_one.num_runs, 0)
        self.assertEqual(self.tag_two.num_runs, 1)
        self.assertEqual(self.tag_three.num_runs, 0)
예제 #2
0
    def test_with_empty_query(self):
        """Given an empty TestCaseTag QuerySet we expect the result of all the counting to be 0"""

        test_case_tags = TestCaseTag.objects.filter(tag=-1).values('tag').annotate(
            num_cases=Count('tag')).order_by('tag')

        case_tag_counter = _TagCounter('num_cases', test_case_tags)
        count_for_tag_one = case_tag_counter.calculate_tag_count(self.tag_one)
        count_for_tag_two = case_tag_counter.calculate_tag_count(self.tag_two)

        self.assertEqual(count_for_tag_one, 0)
        self.assertEqual(count_for_tag_two, 0)
예제 #3
0
    def test_with_tag_not_in_query(self):
        """Given a QuerySet that does not contain a given tag,the count for this tag should be 0"""

        test_case = TestCaseFactory()
        test_case.add_tag(self.tag_one)

        test_case_tags = TestCaseTag.objects.filter(
            tag=self.tag_one).values('tag').annotate(
                num_cases=Count('tag')).order_by('tag')

        case_tag_counter = _TagCounter('num_cases', test_case_tags)
        count_for_tag_one = case_tag_counter.calculate_tag_count(self.tag_one)
        count_for_tag_two = case_tag_counter.calculate_tag_count(self.tag_two)

        self.assertEqual(count_for_tag_one, 1)
        self.assertEqual(count_for_tag_two, 0)