def test_clean_year(self): questionnaire = Questionnaire.objects.create(name="JRF 2013 Core English", status=Questionnaire.FINALIZED, year=date.today().year + 1) form_data = self.form_data.copy() form_data['year'] = questionnaire.year questionnaire_filter = QuestionnaireFilterForm(form_data) self.assertFalse(questionnaire_filter.is_valid()) message = "Select a valid choice. %d is not one of the available choices." % questionnaire.year self.assertIn(message, questionnaire_filter.errors['year'])
def test_valid_with_published_questionnaire(self): questionnaire = Questionnaire.objects.create(name="JRF 2013 Core English", status=Questionnaire.PUBLISHED, year=2013) form_data = { 'questionnaire': questionnaire.id, 'year': date.today().year + 1, 'name': 'New JRF' } questionnaire_filter = QuestionnaireFilterForm(form_data) self.assertTrue(questionnaire_filter.is_valid())
def post(self, *args, **kwargs): form = QuestionnaireFilterForm(self.request.POST) if form.is_valid(): duplicate, _ = QuestionnaireClonerService(form.cleaned_data['questionnaire']).clone() duplicate.name = form.cleaned_data['name'] duplicate.year = form.cleaned_data['year'] duplicate.save() message = "The questionnaire has been duplicated successfully, You can now go ahead and edit it" messages.success(self.request, message) redirect_url = reverse('questionnaire_entry_page', args=(duplicate.id, duplicate.sections.all()[0].id)) return HttpResponseRedirect(redirect_url) message = "Questionnaire could not be duplicated see errors below" messages.error(self.request, message) return HttpResponseRedirect(reverse('manage_jrf_page'))
def test_clean_year(self): questionnaire = Questionnaire.objects.create(name="JRF 2013 Core English", status=Questionnaire.PUBLISHED, year=date.today().year + 1) child_questionnaire = Questionnaire.objects.create(name="JRF 2013 Core English", status=Questionnaire.PUBLISHED, year=date.today().year + 1, parent=questionnaire, region=RegionFactory(name='AFR')) NumericalAnswerFactory(questionnaire=child_questionnaire) form_data = self.form_data.copy() form_data['year'] = child_questionnaire.year questionnaire_filter = QuestionnaireFilterForm(form_data) valid = questionnaire_filter.is_valid() self.assertFalse(valid) message = "Select a valid choice. %d is not one of the available choices." % questionnaire.year self.assertIn(message, questionnaire_filter.errors['year'])
def test_valid_when_name_is_blank(self): form_data = self.form_data.copy() form_data['name'] = '' questionnaire_filter = QuestionnaireFilterForm(form_data) self.assertFalse(questionnaire_filter.is_valid()) self.assertIn("This field is required.", questionnaire_filter.errors['name'])
def test_valid(self): questionnaire_filter = QuestionnaireFilterForm(self.form_data) self.assertTrue(questionnaire_filter.is_valid())