def test_edit_two(self): q = Quiz() q.edit(dict(description='foo'), None) self.assertEqual(q.description, 'foo') self.assertFalse(q.rhetorical) self.assertFalse(q.allow_redo) self.assertFalse(q.show_submit_state)
def test_summary_render(self): q = Quiz(description="short") self.assertEqual(q.summary_render(), "short") q.description = ''.join(smart_text(x) for x in range(75)) expected = ('012345678910111213141516171819202122' '2324252627282930313233343...') self.assertEqual(q.summary_render(), expected)
def test_create_from_dict(self): q = Quiz(description="first") d = q.as_dict() q2 = Quiz.create_from_dict(d) self.assertEquals(q2.description, "first") self.assertEquals(q.allow_redo, q2.allow_redo) self.assertEquals(q.rhetorical, q2.rhetorical) self.assertEquals(q.show_submit_state, q2.show_submit_state)
def test_edit(self): q = Quiz() q.edit(dict(description='foo', rhetorical='on', allow_redo='0', show_submit_state='on'), None) self.assertEqual(q.description, 'foo') self.assertEqual(q.rhetorical, True) self.assertEqual(q.allow_redo, False) self.assertTrue(q.show_submit_state)
def create_quizblock(self, section): quiz = Quiz() quiz.save() self.section.append_pageblock(label="quiz", css_extra="", content_object=quiz) return quiz
def test_dict_roundtrip(self): q1 = Quiz(description="first", show_submit_state=False) d = q1.as_dict() q2 = Quiz(description="second") q2.import_from_dict(d) self.assertEquals(q2.description, "first") self.assertEquals(q1.allow_redo, q2.allow_redo) self.assertEquals(q1.rhetorical, q2.rhetorical) self.assertEquals(q1.show_submit_state, q2.show_submit_state)
def test_import_from_dict_defaults(self): d = { 'description': 'Test Quiz', } q = Quiz() q.import_from_dict(d) self.assertEqual(q.description, 'Test Quiz') self.assertEqual(q.allow_redo, True) self.assertEqual(q.rhetorical, False) self.assertEqual(q.show_submit_state, True) self.assertEqual(q.submission_set.count(), 0) self.assertEqual(q.question_set.count(), 0)
def test_create_method(self): r = FakeReq() q = Quiz.create(r) self.assertEquals(q.description, '') self.assertEquals(q.display_name, 'Quiz') self.assertFalse(q.show_submit_state) self.assertFalse(q.rhetorical) self.assertFalse(q.allow_redo)
def test_create_from_dict_defaults(self): d = { 'description': 'Test Quiz', } q = Quiz.create_from_dict(d) self.assertEquals(q.description, 'Test Quiz') self.assertEquals(q.allow_redo, True) self.assertEquals(q.rhetorical, False) self.assertEquals(q.show_submit_state, True)
def test_create_method_two(self): r = FakeReq() r.POST['show_submit_state'] = 'on' r.POST['rhetorical'] = 'on' r.POST['allow_redo'] = 'on' q = Quiz.create(r) self.assertEquals(q.description, '') self.assertEquals(q.display_name, 'Quiz') self.assertTrue(q.show_submit_state) self.assertTrue(q.rhetorical) self.assertTrue(q.allow_redo)
def test_import_from_dict_defaults_2(self): d = { 'description': 'Test Quiz', 'rhetorical': False, 'allow_redo': False, 'show_submit_state': True, 'questions': [{ 'text': 'Test Question', 'question_type': 'single choice', 'explanation': '', 'answers': [], }], } q = Quiz() q.import_from_dict(d) self.assertEqual(q.description, 'Test Quiz') self.assertEqual(q.allow_redo, False) self.assertEqual(q.rhetorical, False) self.assertEqual(q.show_submit_state, True) self.assertEqual(q.submission_set.count(), 0) self.assertEqual(q.question_set.count(), 1) self.assertEqual(q.question_set.first().intro_text, '')
def setUp(self): self.factory = RequestFactory() self.user = UserFactory() self.quiz = Quiz() self.quiz.save() self.single_answer = Question.objects.create( quiz=self.quiz, text='single answer', question_type='single choice') self.single_answer_one = Answer.objects.create( question=self.single_answer, label='Yes', value='1') self.single_answer_two = Answer.objects.create( question=self.single_answer, label='No', value='0')
def setUp(self): super(QuestionColumnTest, self).setUp() quiz = Quiz() quiz.save() self.section = self.hierarchy_one.get_root().get_next() self.section.append_pageblock('Quiz', '', content_object=quiz) self.user = UserFactory() self.user2 = UserFactory() self.single_answer = Question.objects.create( quiz=quiz, text='single answer', question_type='single choice') self.single_answer_one = Answer.objects.create( question=self.single_answer, label='Yes', value='1') self.single_answer_two = Answer.objects.create( question=self.single_answer, label='No', value='0') self.multiple_answer = Question.objects.create( quiz=quiz, text='multiple answer', question_type='multiple choice') self.multiple_answer_one = Answer.objects.create( question=self.multiple_answer, label='Yes', value='1') self.multiple_answer_two = Answer.objects.create( question=self.multiple_answer, label='No', value='0') self.short_text = Question.objects.create( quiz=quiz, text='short text', question_type='short text') self.long_text = Question.objects.create( quiz=quiz, text='long text', question_type='long text') self.submission = Submission.objects.create(quiz=quiz, user=self.user) self.report = PagetreeReport() self.quiz = quiz
class LoggedInViewTest(TestCase): def setUp(self): self.factory = RequestFactory() self.user = UserFactory() self.quiz = Quiz() self.quiz.save() self.single_answer = Question.objects.create( quiz=self.quiz, text='single answer', question_type='single choice') self.single_answer_one = Answer.objects.create( question=self.single_answer, label='Yes', value='1') self.single_answer_two = Answer.objects.create( question=self.single_answer, label='No', value='0') @override_settings(ROOT_URLCONF='quizblock.urls') def test_edit_quiz(self): url = "/quizblock/edit_quiz/%s/" % self.quiz.id request = self.factory.get(url) request.user = self.user response = EditQuizView.as_view()(request, pk=self.quiz.id) self.assertEqual(response.status_code, 200) @override_settings(ROOT_URLCONF='quizblock.urls') def test_add_question_to_quiz(self): self.assertEquals(self.quiz.question_set.count(), 1) url = "/quizblock/edit_quiz/%s/add_question" % self.quiz.id data = {u'text': [u'the text'], u'intro_text': [u'the intro'], u'explanation': [u'the explanation'], u'question_type': [u'short text']} request = self.factory.post(url, data) request.user = self.user response = AddQuestionToQuizView.as_view()(request, pk=self.quiz.id) self.assertEquals(response.status_code, 302) self.assertEquals(self.quiz.question_set.count(), 2) question = self.quiz.question_set.get(text="the text") self.assertEquals(question.intro_text, 'the intro') self.assertEquals(question.explanation, 'the explanation') self.assertEquals(question.question_type, 'short text') @override_settings(ROOT_URLCONF='quizblock.urls') def test_edit_question(self): question = self.quiz.question_set.all()[0] url = "/quizblock/edit_question/%s/" % question.id data = {u'text': [u'alt text'], u'intro_text': [u'alt intro'], u'explanation': [u'alt explanation'], u'question_type': [u'short text']} request = self.factory.post(url, data) request.user = self.user response = EditQuestionView.as_view()(request, pk=question.id) self.assertEquals(response.status_code, 302) question = self.quiz.question_set.all()[0] self.assertEquals(question.intro_text, 'alt intro') self.assertEquals(question.explanation, 'alt explanation') self.assertEquals(question.question_type, 'short text') @override_settings(ROOT_URLCONF='quizblock.urls') def test_add_answer_to_question(self): question = self.quiz.question_set.all()[0] self.assertEquals(question.answer_set.count(), 2) url = '/quizblock/edit_question/%s/add_answer/' % question.id data = {u'explanation': [u'the explanation'], u'value': [u'2'], u'label': [u'Maybe']} request = self.factory.post(url, data) request.user = self.user response = AddAnswerToQuestionView.as_view()(request, pk=question.id) self.assertEquals(response.status_code, 302) self.assertEquals(question.answer_set.count(), 3) answer = question.answer_set.get(label='Maybe') self.assertEquals(answer.explanation, 'the explanation') self.assertEquals(answer.value, '2') @override_settings(ROOT_URLCONF='quizblock.urls') def test_add_answer_to_question_emptylabel(self): question = self.quiz.question_set.all()[0] url = '/quizblock/edit_question/%s/add_answer/' % question.id data = {u'explanation': [u'the explanation'], u'value': [u'Maybe']} request = self.factory.post(url, data) request.user = self.user response = AddAnswerToQuestionView.as_view()(request, pk=question.id) self.assertEquals(response.status_code, 302) self.assertEquals(question.answer_set.count(), 3) question.answer_set.get(label='Maybe') @override_settings(ROOT_URLCONF='quizblock.urls') def test_delete_question(self): question = self.quiz.question_set.all()[0] url = '/quizblock/delete_question/%s/' % question.id request = self.factory.post(url, {}) request.user = self.user response = DeleteQuestionView.as_view()(request, pk=question.id) self.assertEquals(response.status_code, 302) self.assertEquals(self.quiz.question_set.count(), 0) def test_reorder_answers(self): question = self.quiz.question_set.all()[0] yes = Answer.objects.get(label='Yes') self.assertEquals(yes.display_number(), 1) no = Answer.objects.get(label='No') self.assertEquals(no.display_number(), 2) args = 'answer_0=%s&answer_1=%s' % (yes.id, no.id) url = '/quizblock/reorder_answers/%s/?%s' % (question.id, args) request = self.factory.post(url, {}) request.user = self.user response = ReorderAnswersView.as_view()(request, pk=question.id) self.assertEquals(response.status_code, 200) yes = Answer.objects.get(label='Yes') self.assertEquals(yes.display_number(), 1) no = Answer.objects.get(label='No') self.assertEquals(no.display_number(), 2) def test_reorder_questions(self): self.short_text = Question.objects.create( quiz=self.quiz, text='short text', question_type='short text') self.assertEqual(self.single_answer.display_number(), 1) self.assertEqual(self.short_text.display_number(), 2) args = 'question_0=%s&question_1=%s' % (self.short_text.id, self.single_answer.id) url = '/quizblock/reorder_questions/%s/?%s' % (self.quiz.id, args) request = self.factory.post(url) request.user = self.user response = ReorderQuestionsView.as_view()(request, pk=self.quiz.id) self.assertEquals(response.status_code, 200) self.short_text = Question.objects.get(text='short text') self.assertEqual(self.short_text.display_number(), 1) self.single_answer = Question.objects.get(text='single answer') self.assertEqual(self.single_answer.display_number(), 2) @override_settings(ROOT_URLCONF='quizblock.urls') def test_delete_answer(self): question = self.quiz.question_set.all()[0] self.assertEquals(question.answer_set.count(), 2) answer = question.answer_set.all()[0] url = '/quizblock/delete_answer/%s/' % answer.id request = self.factory.post(url, {}) request.user = self.user response = DeleteAnswerView.as_view()(request, pk=answer.id) self.assertEquals(response.status_code, 302) self.assertEquals(question.answer_set.count(), 1) @override_settings(ROOT_URLCONF='quizblock.urls') def test_edit_answer(self): question = self.quiz.question_set.all()[0] answer = question.answer_set.all()[0] url = "/quizblock/edit_answer/%s/" % answer.id data = {u'explanation': [u'alt explanation'], u'value': [u'Possibly']} request = self.factory.post(url, data) request.user = self.user response = EditAnswerView.as_view()(request, pk=answer.id) self.assertEquals(response.status_code, 302) answer = question.answer_set.get(value='Possibly') self.assertEquals(answer.explanation, 'alt explanation')
def test_redirect_to_self_on_submit(self): q = Quiz() self.assertTrue(q.redirect_to_self_on_submit()) q2 = Quiz(show_submit_state=False) self.assertFalse(q2.redirect_to_self_on_submit())
def test_add_question_form(self): q = Quiz() f = q.add_question_form(None) self.assertTrue('text' in f.fields)
def test_needs_submit(self): q = Quiz() self.assertTrue(q.needs_submit()) q.rhetorical = True self.assertFalse(q.needs_submit())
def test_add_form(self): f = Quiz.add_form() self.assertTrue('rhetorical' in f.fields) self.assertTrue('allow_redo' in f.fields) self.assertTrue('show_submit_state' in f.fields)