コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
    def create_quizblock(self, section):
        quiz = Quiz()
        quiz.save()

        self.section.append_pageblock(label="quiz",
                                      css_extra="",
                                      content_object=quiz)
        return quiz
コード例 #6
0
    def create_quizblock(self, section):
        quiz = Quiz()
        quiz.save()

        self.section.append_pageblock(label="quiz",
                                      css_extra="",
                                      content_object=quiz)
        return quiz
コード例 #7
0
 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)
コード例 #8
0
 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)
コード例 #9
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)
コード例 #10
0
 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)
コード例 #11
0
 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)
コード例 #12
0
 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, '')
コード例 #13
0
ファイル: test_views.py プロジェクト: ccnmtl/django-quizblock
    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')
コード例 #14
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
コード例 #15
0
ファイル: test_views.py プロジェクト: ccnmtl/django-quizblock
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')
コード例 #16
0
    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())
コード例 #17
0
 def test_add_question_form(self):
     q = Quiz()
     f = q.add_question_form(None)
     self.assertTrue('text' in f.fields)
コード例 #18
0
 def test_needs_submit(self):
     q = Quiz()
     self.assertTrue(q.needs_submit())
     q.rhetorical = True
     self.assertFalse(q.needs_submit())
コード例 #19
0
 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)