Пример #1
0
 def test_clean_export_label(self):
     data = self.form_data.copy()
     data['export_label'] = ''
     question_form = QuestionForm(data=data)
     self.assertFalse(question_form.is_valid())
     self.assertIn("All questions must have export label.",
                   question_form.errors['export_label'])
Пример #2
0
 def test_clean_answer_type(self):
     data = self.form_data.copy()
     data['answer_type'] = ''
     question_form = QuestionForm(data=data)
     self.assertFalse(question_form.is_valid())
     self.assertIn("This field is required.",
                   question_form.errors['answer_type'])
Пример #3
0
 def test_increments_uid_of_existing_question_by_one_upon_save_given_instance(
         self):
     Question.objects.create(text='B. Number of cases tested',
                             instructions="Enter the total number of cases",
                             UID='00001',
                             answer_type='Number')
     question_form = QuestionForm(data=self.form_data)
     question = question_form.save(commit=True)
     self.assertEqual('00002', question.UID)
Пример #4
0
    def test_form_invalid_if_multichoice_question_and_no_options_in_data_options(
            self):
        form = {
            'text': 'How many kids were immunised this year?',
            'instructions': 'Some instructions',
            'short_instruction': 'short version',
            'export_label': 'blah',
            'answer_type': 'MultiChoice',
            'options': ['', '']
        }
        question_form = QuestionForm(data=form)

        self.assertFalse(question_form.is_valid())
        message = "MultiChoice questions must have at least one option"
        self.assertIn(message, question_form.errors['answer_type'][0])
Пример #5
0
    def test_save_multichoice_question_saves_options(self):
        options = ['Yes', 'No', 'Maybe']
        form = {
            'text': 'How many kids were immunised this year?',
            'instructions': 'Some instructions',
            'short_instruction': 'short version',
            'export_label': 'blah',
            'answer_type': 'MultiChoice',
            'options': options
        }

        question_form = QuestionForm(data=form)
        question = question_form.save(commit=True)
        question_options = QuestionOption.objects.filter(question=question)

        self.assertEqual(3, question_options.count())
        [
            self.assertIn(question_option.text, options)
            for question_option in question_options
        ]
Пример #6
0
 def post(self, request, *args, **kwargs):
     self.form = QuestionForm(data=request.POST)
     if self.form.is_valid():
         return self._form_valid()
     return self._form_invalid()
Пример #7
0
 def test_answer_type_choices_has_empty_label(self):
     question_form = QuestionForm()
     self.assertIn(('', 'Response type'),
                   question_form.fields['answer_type'].choices)
Пример #8
0
 def test_invalid_if_question_text_is_blank(self):
     data = self.form_data.copy()
     data['text'] = ''
     question_form = QuestionForm(data=data)
     self.assertFalse(question_form.is_valid())
     self.assertIn("This field is required.", question_form.errors['text'])
Пример #9
0
 def test_valid(self):
     section_form = QuestionForm(data=self.form_data)
     self.assertTrue(section_form.is_valid())