def test_create_order_incrementally_on_save(self):
     assign_question_form = AssignQuestionForm(self.form_data, subsection=self.subsection)
     self.assertTrue(assign_question_form.is_valid())
     assign_question_form.save()
     question_group = self.question1.question_group.all()
     self.assertEqual(1, self.question1.orders.get(question_group=question_group[0]).order)
     self.assertEqual(2, self.question2.orders.get(question_group=question_group[0]).order)
 def test_non_existing_question_is_invalid(self):
     non_existing_question_id = '999'
     data = {'questions': [non_existing_question_id, self.question1.id]}
     assign_question_form = AssignQuestionForm(data)
     self.assertFalse(assign_question_form.is_valid())
     error_message = 'Select a valid choice. 999 is not one of the available choices.'
     self.assertEqual([error_message], assign_question_form.errors['questions'])
 def test_non_existing_question_is_invalid(self):
     non_existing_question_id = '999'
     data = {'questions': [non_existing_question_id, self.question1.id]}
     assign_question_form = AssignQuestionForm(data)
     self.assertFalse(assign_question_form.is_valid())
     error_message = 'Select a valid choice. 999 is not one of the available choices.'
     self.assertEqual([error_message],
                      assign_question_form.errors['questions'])
 def test_create_groups_on_save_if_subsection_does_not_already_have_one(self):
     assign_question_form = AssignQuestionForm(self.form_data, subsection=self.subsection)
     self.assertTrue(assign_question_form.is_valid())
     assign_question_form.save()
     question_group = self.question1.question_group.all()
     self.assertEqual(1, question_group.count())
     self.assertEqual(question_group[0], self.question2.question_group.all()[0])
     self.assertEqual(self.subsection, question_group[0].subsection)
    def test_adding_question_to_subsection_with_two_groups_adds_to_the_last_group(self):
        existing_group1 = QuestionGroup.objects.create(subsection=self.subsection, order=1)
        existing_group2 = QuestionGroup.objects.create(subsection=self.subsection, order=2)

        assign_question_form = AssignQuestionForm(self.form_data, subsection=self.subsection)
        self.assertTrue(assign_question_form.is_valid())
        assign_question_form.save()
        question_group = self.question1.question_group.all()[0]
        self.assertEqual(existing_group2, question_group)
        self.assertEqual(2, existing_group2.all_questions().count())
 def test_create_groups_on_save_if_subsection_does_not_already_have_one(
         self):
     assign_question_form = AssignQuestionForm(self.form_data,
                                               subsection=self.subsection)
     self.assertTrue(assign_question_form.is_valid())
     assign_question_form.save()
     question_group = self.question1.question_group.all()
     self.assertEqual(1, question_group.count())
     self.assertEqual(question_group[0],
                      self.question2.question_group.all()[0])
     self.assertEqual(self.subsection, question_group[0].subsection)
 def test_create_order_incrementally_on_save(self):
     assign_question_form = AssignQuestionForm(self.form_data,
                                               subsection=self.subsection)
     self.assertTrue(assign_question_form.is_valid())
     assign_question_form.save()
     question_group = self.question1.question_group.all()
     self.assertEqual(
         1,
         self.question1.orders.get(question_group=question_group[0]).order)
     self.assertEqual(
         2,
         self.question2.orders.get(question_group=question_group[0]).order)
    def test_create_order_incrementally_on_save_when_there_is_already_a_question(self):
        already_existing_group = QuestionGroup.objects.create(subsection=self.subsection, order=1)
        question_with_order = Question.objects.create(text='Q w/ order', UID='C00023', answer_type='Number')
        some_arbitrary_order = 50
        question_with_order.orders.create(question_group=already_existing_group, order=some_arbitrary_order)

        assign_question_form = AssignQuestionForm(self.form_data, subsection=self.subsection)
        self.assertTrue(assign_question_form.is_valid())
        assign_question_form.save()
        question_group = self.question1.question_group.all()
        self.assertEqual(some_arbitrary_order + 1, self.question1.orders.get(question_group=question_group[0]).order)
        self.assertEqual(some_arbitrary_order + 2, self.question2.orders.get(question_group=question_group[0]).order)
Esempio n. 9
0
 def post(self, request, *args, **kwargs):
     referer_url = request.META.get('HTTP_REFERER', None)
     subsection = SubSection.objects.get(id=kwargs['subsection_id'])
     region = request.user.user_profile.region
     form = AssignQuestionForm(request.POST, subsection=subsection, region=region)
     if form.is_valid():
         form.save()
         messages.success(request, "Questions successfully assigned to questionnaire.")
         return HttpResponseRedirect(referer_url)
     questions = form.fields['questions'].queryset.filter(child=None)
     context = {'assign_question_form': form,
                'btn_label': 'Done', 'questions': questions}
     return render(request, self.template_name, context)
    def test_if_subsection_is_regionnal_then_only_regional_questions_can_be_added_to_it(self):
        region = Region.objects.create(name="AFR")
        question1 = Question.objects.create(text='Q1 R', UID='C000R3', answer_type='Number', region=region)
        question2 = Question.objects.create(text='Q2 R', UID='C000R2', answer_type='Number', region=region)

        form_data = {'questions': [self.question1.id, self.question2.id]}
        assign_question_form = AssignQuestionForm(form_data, region=region)

        self.assertFalse(assign_question_form.is_valid())
        error_message = 'Select a valid choice. %d is not one of the available choices.' % self.question1.id
        self.assertEqual([error_message], assign_question_form.errors['questions'])

        form_data = {'questions': [question1.id, question2.id]}
        assign_question_form = AssignQuestionForm(form_data, region=region)
    def test_create_order_incrementally_on_save_when_there_is_already_a_question(
            self):
        already_existing_group = QuestionGroup.objects.create(
            subsection=self.subsection, order=1)
        question_with_order = Question.objects.create(text='Q w/ order',
                                                      UID='C00023',
                                                      answer_type='Number')
        some_arbitrary_order = 50
        question_with_order.orders.create(
            question_group=already_existing_group, order=some_arbitrary_order)

        assign_question_form = AssignQuestionForm(self.form_data,
                                                  subsection=self.subsection)
        self.assertTrue(assign_question_form.is_valid())
        assign_question_form.save()
        question_group = self.question1.question_group.all()
        self.assertEqual(
            some_arbitrary_order + 1,
            self.question1.orders.get(question_group=question_group[0]).order)
        self.assertEqual(
            some_arbitrary_order + 2,
            self.question2.orders.get(question_group=question_group[0]).order)
 def test_valid(self):
     assign_question_form = AssignQuestionForm(self.form_data)
     self.assertTrue(assign_question_form.is_valid())
 def test_valid(self):
     assign_question_form = AssignQuestionForm(self.form_data)
     self.assertTrue(assign_question_form.is_valid())