Ejemplo n.º 1
0
    def post(self, request, plan_id):
        plan = get_object_or_404(TestPlan, pk=int(plan_id))

        search_mode = request.POST.get('search_mode')
        if search_mode == 'quick':
            form = quick_form = QuickSearchCaseForm(request.POST)
            normal_form = SearchCaseForm()
        else:
            form = normal_form = SearchCaseForm(request.POST)
            form.populate(product_id=request.POST.get('product'))
            quick_form = QuickSearchCaseForm()

        cases = []
        if form.is_valid():
            cases = TestCase.list(form.cleaned_data)
            cases = cases.select_related(
                'author', 'default_tester', 'case_status', 'priority'
            ).only(
                'pk', 'summary', 'create_date', 'author__email',
                'default_tester__email', 'case_status__name',
                'priority__value'
            ).exclude(
                case_id__in=plan.case.values_list('case_id', flat=True))

        context = {
            'test_plan': plan,
            'test_cases': cases,
            'search_form': normal_form,
            'quick_form': quick_form,
            'search_mode': search_mode
        }
        return render(request, self.template_name, context=context)
Ejemplo n.º 2
0
        def link_cases(self, template_name='plan/search_case.html'):
            """Handle to form to add case to plans"""
            SUB_MODULE_NAME = 'plans'
            tcs = None

            if request.POST.get('action') == 'add_to_plan':
                if request.user.has_perm('testcases.add_testcaseplan'):
                    tcs = TestCase.objects.filter(
                        case_id__in=request.POST.getlist('case'))
                    for tc in tcs:
                        tp.add_case(tc)
                else:
                    return HttpResponse("Permission Denied")

                return HttpResponseRedirect(
                    reverse('test_plan_url_short', args=[plan_id]))

            search_mode = request.POST.get('search_mode')
            if request.POST.get('action') == 'search':

                if search_mode == 'quick':
                    form = quick_form = QuickSearchCaseForm(request.POST)
                    normal_form = SearchCaseForm()
                else:
                    form = normal_form = SearchCaseForm(request.POST)
                    form.populate(product_id=request.POST.get('product'))
                    quick_form = QuickSearchCaseForm()

                if form.is_valid():
                    tcs = TestCase.list(form.cleaned_data)
                    tcs = tcs.select_related(
                        'author', 'default_tester', 'case_status',
                        'priority').only('pk', 'summary', 'create_date',
                                         'author__email',
                                         'default_tester__email',
                                         'case_status__name',
                                         'priority__value')
                    tcs = tcs.exclude(
                        case_id__in=tp.case.values_list('case_id', flat=True))
            else:
                normal_form = SearchCaseForm(
                    initial={
                        'product': tp.product_id,
                        'product_version': tp.product_version_id,
                        'case_status_id': TestCaseStatus.get_CONFIRMED()
                    })
                quick_form = QuickSearchCaseForm()

            context_data = {
                'module': MODULE_NAME,
                'sub_module': SUB_MODULE_NAME,
                'test_plan': tp,
                'test_cases': tcs,
                'search_form': normal_form,
                'quick_form': quick_form,
                'search_mode': search_mode
            }
            return render(request, template_name, context_data)
Ejemplo n.º 3
0
    def get(self, request, plan_id):
        plan = get_object_or_404(TestPlan, pk=int(plan_id))

        normal_form = SearchCaseForm(initial={
            'product': plan.product_id,
            'product_version': plan.product_version_id,
            'case_status_id': TestCaseStatus.get_CONFIRMED()
        })
        quick_form = QuickSearchCaseForm()
        return render(self.request, self.template_name, {
            'search_form': normal_form,
            'quick_form': quick_form,
            'test_plan': plan,
        })
Ejemplo n.º 4
0
 def test_valid_input(self):
     form = QuickSearchCaseForm({'case_id_set': '1,2, 3'})
     self.assertTrue(form.is_valid())
     self.assertEqual([1, 2, 3], sorted(form.cleaned_data['case_id_set']))
Ejemplo n.º 5
0
 def test_non_integer_in_case_id_set(self):
     for value in ('1,2,a,4', '1,2,,3'):
         form = QuickSearchCaseForm({'case_id_set': value})
         self.assertFalse(form.is_valid())
         self.assertIn('Please input valid case id(s)',
                       form.errors['case_id_set'][0])
Ejemplo n.º 6
0
 def test_empty_string_for_case_id_set(self):
     form = QuickSearchCaseForm({'case_id_set': ''})
     self.assertFalse(form.is_valid())
     self.assertIn('Please input valid case id(s)',
                   form.errors['case_id_set'][0])