def test_sets_message_to_enable_done_view(self):
     form = mommy.make(Form, project=self.project,
                       slug='form-1', published=True)
     mommy.make(FormField, id=1, form=form, kind='multiple-choice',
                details={'choices': [{'label': 'A'}, {'label': 'B'}]})
     fill_out_form(self.request, form.project, form.slug)
     self.assertEqual(len(self.request._messages._queued_messages), 1)
     msg = self.request._messages._queued_messages[0]
     self.assertEqual(msg.level, messages.SUCCESS)
     self.assertEqual(msg.message, 'DONE')
 def test_rerenders_form_with_error_messages_if_response_invalid(self):
     form = mommy.make(Form, project=self.project,
                       slug='form-1', published=True)
     mommy.make(FormField, id=1, form=form, kind='multiple-choice',
                details={'question': 'Pick your answers',
                         'choices': [{'label': 'A'}, {'label': 'B'}],
                         'required': True})
     response = fill_out_form(self.request, form.project, form.slug)
     self.assertContains(response, 'Pick your answers')
     self.assertContains(response, 'class="error"')
 def test_renders_the_form_template_and_handles_markdown(self):
     form = mommy.make(Form, project=self.project,
                       slug='form-1', published=True)
     # mommy.make(FormField, form=form, kind='short-answer',
     #            details={'question': '# Answer the question.'})
     mommy.make(FormField, form=form, kind='multiple-choice',
                details={'question': '# Pick some answers.',
                         'choices': [{'label': 'A'}, {'label': 'B'}]})
     response = fill_out_form(self.request, form.project, form.slug)
     self.assertContains(response, '<h1>Pick some answers.</h1>')
     self.assertContains(response, 'value="A"')
     self.assertContains(response, 'value="B"')
 def test_creates_response_and_redirects_to_done_page(self):
     form = mommy.make(Form, project=self.project,
                       slug='form-1', published=True)
     mommy.make(FormField, id=1, form=form, kind='multiple-choice',
                details={'choices': [{'label': 'A'}, {'label': 'B'}]})
     response = fill_out_form(self.request, form.project, form.slug)
     self.assertEqual(response.status_code, 302)
     url = reverse('response_done', args=[form.project, 'form-1'])
     self.assertEqual(response.url, url)
     form_response = FormResponse.objects.last()
     field_response = form_response.formfieldresponse_set.first()
     self.assertEqual(form_response.form_id, form.id)
     self.assertEqual(field_response.details['answers'][0]['label'], 'A')
     self.assertFalse(field_response.details['answers'][0]['selected'])
     self.assertEqual(field_response.details['answers'][1]['label'], 'B')
     self.assertFalse(field_response.details['answers'][1]['selected'])