Skip to content
test_inline.py 30.8 KiB
Newer Older
Dong Zhuang's avatar
Dong Zhuang committed
    def test_has_unpaired_wrapper(self):
        markdown = INLINE_MULTI_MARKDOWN_HAS_UNPAIRED_WRAPPER
        resp = self.get_page_sandbox_preview_response(markdown)
        self.assertEqual(resp.status_code, 200)
        self.assertSandboxNotHasValidPage(resp)
        self.assertResponseContextContains(
            resp, PAGE_ERRORS,
            "question has unpaired '[['.")

    def test_redundant(self):
        markdown = INLINE_MULTI_MARKDOWN_REDUNDANT
        resp = self.get_page_sandbox_preview_response(markdown)
        self.assertEqual(resp.status_code, 200)
        self.assertSandboxHasValidPage(resp)
        self.assertSandboxWarningTextContain(
            resp,
            "redundant answers 'blank_2' provided for non-existing "
            "question(s).")

        resp = self.get_page_sandbox_submit_answer_response(
            markdown,
            answer_data={'blank1': 'Bar'})
        self.assertEqual(resp.status_code, 200)
        self.assertContains(resp, "This is an explanation.")
        self.assertResponseContextAnswerFeedbackCorrectnessEquals(resp, 1)

    def test_embedded_question_with_markdown(self):
        markdown = INLINE_MULTI_EMBEDDED_WITH_MARKDOWN
        resp = self.get_page_sandbox_preview_response(markdown)
        self.assertEqual(resp.status_code, 200)
        self.assertSandboxHasValidPage(resp)
        self.assertContains(
            resp, '<img src="/course/test-course/media/4124e0c23e369d6709a6'
                  '70398167cb9c2fe52d35/images/classroom.jpeg">', html=True)

Dong Zhuang's avatar
Dong Zhuang committed
class InlineMultiPageUpdateTest(SingleCourseQuizPageTestMixin, TestCase):
    page_id = "inlinemulti"
Dong Zhuang's avatar
Dong Zhuang committed

    def setUp(self):
        super(InlineMultiPageUpdateTest, self).setUp()
        self.c.force_login(self.student_participation.user)

    def test_quiz_inline_not_show_correctness(self):
        self.start_flow(self.flow_id)

        with mock.patch("course.flow.get_page_behavior") as mock_get_bhv:
            mock_get_bhv.side_effect = (
                get_page_behavior_not_show_correctness_side_effect)
Dong Zhuang's avatar
Dong Zhuang committed

            submit_answer_response, _ = (
                self.submit_page_answer_by_page_id_and_test(
                    self.page_id, do_grading=False))
            self.assertEqual(submit_answer_response.status_code, 200)
Dong Zhuang's avatar
Dong Zhuang committed

            # 7 answer
Dong Zhuang's avatar
Dong Zhuang committed
            self.assertContains(submit_answer_response, 'correctness="1"', count=0)
            self.assertContains(submit_answer_response, 'correctness="0"', count=0)

            self.end_flow()
            self.assertSessionScoreEqual(10)
Dong Zhuang's avatar
Dong Zhuang committed

    # {{{ Test bug fix in https://github.com/inducer/relate/pull/262

    def test_add_new_question(self):
        """Test bug fix in https://github.com/inducer/relate/pull/262
        """
        with mock.patch("course.content.get_repo_blob") as mock_get_repo_blob:
            mock_get_repo_blob.side_effect = get_repo_blob_side_effect

            self.post_update_course_content(
                commit_sha=b"ec41a2de73a99e6022060518cb5c5c162b88cdf5")

            self.start_flow(self.flow_id)
            resp = self.c.get(
Dong Zhuang's avatar
Dong Zhuang committed
                self.get_page_url_by_page_id(page_id=self.page_id))
Dong Zhuang's avatar
Dong Zhuang committed

            self.assertEqual(resp.status_code, 200)
            self.assertContains(resp, "(old version)")

            answer_data = {
                'blank1': 'Bar', 'blank_2': '0.2', 'blank3': '1',
                'blank4': '5', 'choice2': '0', 'choice_a': '0'}

Dong Zhuang's avatar
Dong Zhuang committed
            submit_answer_response, _ = (
                self.submit_page_answer_by_page_id_and_test(
                    self.page_id, answer_data=answer_data, expected_grades=10))
Dong Zhuang's avatar
Dong Zhuang committed

            # 6 correct answer
Dong Zhuang's avatar
Dong Zhuang committed
            self.assertContains(submit_answer_response,
                                'correctness="1"', count=6)
Dong Zhuang's avatar
Dong Zhuang committed

        self.post_update_course_content(
            commit_sha=b"4124e0c23e369d6709a670398167cb9c2fe52d35")
        resp = self.c.get(
Dong Zhuang's avatar
Dong Zhuang committed
            self.get_page_url_by_page_id(page_id=self.page_id))
Dong Zhuang's avatar
Dong Zhuang committed

        self.assertEqual(resp.status_code, 200)

        # 7 answer
        self.assertContains(resp, 'correctness="1"', count=7)

Dong Zhuang's avatar
Dong Zhuang committed
# vim: fdm=marker