コード例 #1
0
ファイル: test_models.py プロジェクト: mcgarrah/online_test
    def setUpClass(self):
        self.ip = '101.0.0.1'
        self.user = User.objects.get(id=1)
        self.profile = self.user.profile
        self.quiz = Quiz.objects.get(pk=1)
        self.question_paper = QuestionPaper(quiz=self.quiz, total_marks=3)
        self.question_paper.save()
        self.questions = Question.objects.filter(id__in=[1, 2, 3])
        self.start_time = timezone.now()
        self.end_time = self.start_time + timedelta(minutes=20)
        self.question1 = self.questions.get(id=1)
        self.question2 = self.questions.get(id=2)
        self.question3 = self.questions.get(id=3)

        # create answerpaper
        self.answerpaper = AnswerPaper(user=self.user,
                                       question_paper=self.question_paper,
                                       start_time=self.start_time,
                                       end_time=self.end_time,
                                       user_ip=self.ip)
        self.attempted_papers = AnswerPaper.objects.filter(
            question_paper=self.question_paper, user=self.user)
        already_attempted = self.attempted_papers.count()
        self.answerpaper.attempt_number = already_attempted + 1
        self.answerpaper.save()
        self.answerpaper.questions.add(*self.questions)
        self.answerpaper.questions_unanswered.add(*self.questions)
        self.answerpaper.save()
        # answers for the Answer Paper
        self.answer_right = Answer(question=Question.objects.get(id=1),
                                   answer="Demo answer",
                                   correct=True,
                                   marks=1,
                                   error=json.dumps([]))
        self.answer_wrong = Answer(question=Question.objects.get(id=2),
                                   answer="My answer",
                                   correct=False,
                                   marks=0,
                                   error=json.dumps(['error1', 'error2']))
        self.answer_right.save()
        self.answer_wrong.save()
        self.answerpaper.answers.add(self.answer_right)
        self.answerpaper.answers.add(self.answer_wrong)

        self.question1.language = 'python'
        self.question1.test_case_type = 'standardtestcase'
        self.question1.save()
        self.question2.language = 'python'
        self.question2.type = 'mcq'
        self.question2.test_case_type = 'mcqtestcase'
        self.question2.save()
        self.question3.language = 'python'
        self.question3.type = 'mcc'
        self.question3.test_case_type = 'mcqtestcase'
        self.question3.save()
        self.assertion_testcase = StandardTestCase(
            question=self.question1,
            test_case='assert add(1, 3) == 4',
            type='standardtestcase')
        self.assertion_testcase.save()
        self.mcq_based_testcase = McqTestCase(options='a',
                                              question=self.question2,
                                              correct=True,
                                              type='mcqtestcase')
        self.mcq_based_testcase.save()
        self.mcc_based_testcase = McqTestCase(question=self.question3,
                                              options='a',
                                              correct=True,
                                              type='mcqtestcase')
        self.mcc_based_testcase.save()
コード例 #2
0
    def setUpClass(self):
        # Creating User
        self.user = User.objects.get(username='******')
        self.user2 = User.objects.get(username='******')
        self.user_ip = '127.0.0.1'

        # Creating Course
        self.course = Course.objects.get(name="Python Course 100")
        # Creating Quiz
        self.quiz = Quiz.objects.get(description="demo quiz 100")
        # Creating Question paper
        self.question_paper = QuestionPaper.objects.get(quiz=self.quiz)
        self.question_paper.shuffle_testcases = True
        self.question_paper.save()
        # Creating Question
        self.question1 = Question.objects.create(
            summary='mcq1',
            points=1,
            type='code',
            user=self.user,
        )
        self.question1.language = 'python'
        self.question1.type = "mcq"
        self.question1.test_case_type = 'Mcqtestcase'
        self.question1.description = 'Which option is Correct?'
        self.question1.save()

        # For questions
        self.mcq_based_testcase_1 = McqTestCase(
            question=self.question1,
            options="Correct",
            correct=True,
            type='mcqtestcase',
        )
        self.mcq_based_testcase_1.save()

        self.mcq_based_testcase_2 = McqTestCase(
            question=self.question1,
            options="Incorrect",
            correct=False,
            type='mcqtestcase',
        )
        self.mcq_based_testcase_2.save()

        self.mcq_based_testcase_3 = McqTestCase(
            question=self.question1,
            options="Incorrect",
            correct=False,
            type='mcqtestcase',
        )
        self.mcq_based_testcase_3.save()

        self.mcq_based_testcase_4 = McqTestCase(
            question=self.question1,
            options="Incorrect",
            correct=False,
            type='mcqtestcase',
        )
        self.mcq_based_testcase_4.save()

        self.question_paper.fixed_questions.add(self.question1)

        self.answerpaper = self.question_paper.make_answerpaper(
            user=self.user,
            ip=self.user_ip,
            attempt_num=1,
            course_id=self.course.id)

        # Answerpaper for user 2
        self.answerpaper2 = self.question_paper.make_answerpaper(
            user=self.user2,
            ip=self.user_ip,
            attempt_num=1,
            course_id=self.course.id)
コード例 #3
0
    def setUpClass(self):
        self.client = APIClient()
        self.username = '******'
        self.password = '******'
        self.user = User.objects.create_user(username=self.username,
                                             password=self.password)
        Profile.objects.create(user=self.user)
        self.quiz = Quiz.objects.create(description='Quiz', creator=self.user)
        self.questionpaper = QuestionPaper.objects.create(quiz=self.quiz)
        self.question1 = Question.objects.create(summary='Q1',
                                                 user=self.user,
                                                 points=1.0,
                                                 language='python',
                                                 type='code')
        self.question2 = Question.objects.create(summary='Q2',
                                                 user=self.user,
                                                 points=1.0,
                                                 language='python',
                                                 type='mcq')
        self.question3 = Question.objects.create(summary='Q3',
                                                 user=self.user,
                                                 points=1.0,
                                                 language='python',
                                                 type='mcc')
        self.question4 = Question.objects.create(summary='Q4',
                                                 user=self.user,
                                                 points=1.0,
                                                 language='python',
                                                 type='mcq')
        self.question5 = Question.objects.create(summary='Q5',
                                                 user=self.user,
                                                 points=1.0,
                                                 language='python',
                                                 type='mcq')
        self.assertion_testcase = StandardTestCase(
            question=self.question1,
            test_case='assert add(1, 3) == 4',
            type='standardtestcase')
        self.assertion_testcase.save()
        self.mcq_based_testcase1 = McqTestCase(options='a',
                                               question=self.question2,
                                               correct=True,
                                               type='mcqtestcase')
        self.mcq_based_testcase1.save()
        self.mcq_based_testcase2 = McqTestCase(options='b',
                                               question=self.question2,
                                               correct=False,
                                               type='mcqtestcase')
        self.mcq_based_testcase2.save()
        self.mcc_based_testcase = McqTestCase(question=self.question3,
                                              options='a',
                                              correct=True,
                                              type='mcqtestcase')
        self.mcc_based_testcase.save()
        self.questionset = QuestionSet.objects.create(marks=1, num_questions=1)
        self.questionset.questions.add(self.question3)
        self.questionset.questions.add(self.question4)
        self.questionset.save()
        self.questionpaper.fixed_questions.add(self.question1)
        self.questionpaper.fixed_questions.add(self.question2)
        self.questionpaper.random_questions.add(self.questionset)
        self.questionpaper.save()
        self.questionpaper.update_total_marks()
        self.course = Course.objects.create(name="Python Course",
                                            enrollment="Enroll Request",
                                            creator=self.user)
        # Learing module
        learning_module = LearningModule.objects.create(
            name='LM1', description='module one', creator=self.user)
        learning_unit_quiz = LearningUnit.objects.create(quiz=self.quiz,
                                                         type='quiz',
                                                         order=1)
        learning_module.learning_unit.add(learning_unit_quiz)
        learning_module.save()
        self.course.learning_module.add(learning_module)
        self.course.students.add(self.user)
        self.course.save()
        self.ip = '127.0.0.1'
        self.answerpaper = self.questionpaper.make_answerpaper(
            self.user, self.ip, 1, self.course.id)

        settings.code_evaluators['python']['standardtestcase'] = \
            "yaksh.python_assertion_evaluator.PythonAssertionEvaluator"
        server_pool = ServerPool(n=1, pool_port=SERVER_POOL_PORT)
        self.server_pool = server_pool
        self.server_thread = t = Thread(target=server_pool.run)
        t.start()