Ejemplo n.º 1
0
    def test_quiz_checkAnswer_correct(self):
        quest = 'q?'
        ans = []
        questions = []
        ans.append(Answer('a', 1))
        ans.append(Answer('b', 0))
        ans.append(Answer('c', 0))
        questions.append(Question(quest, ans))
        questions.append(Question(quest, ans))
        questions.append(Question(quest, ans))

        quiz = Quiz(0, questions)
        res = quiz.checkAnswer('a')
        self.assertEqual(res, 1)
        res = quiz.checkAnswer('a')
        self.assertEqual(res, 2)
Ejemplo n.º 2
0
    def test_quiz_checkAnswer_wrong(self):
        quest = 'q?'
        ans = []
        questions = []
        ans.append(Answer('a', 1))
        ans.append(Answer('b', 0))
        ans.append(Answer('c', 0))
        questions.append(Question(quest, ans))

        quiz = Quiz(0, questions)
        self.assertRaises(LostQuizError, quiz.checkAnswer, 'b')
Ejemplo n.º 3
0
    def test_quiz_checkAnswer_complete(self):
        quest = 'q?'
        ans = []
        questions = []
        ans.append(Answer('a', 1))
        ans.append(Answer('b', 0))
        ans.append(Answer('c', 0))
        questions.append(Question(quest, ans))

        quiz = Quiz(0, questions)
        self.assertRaises(CompletedQuizError, quiz.checkAnswer, 'a')
Ejemplo n.º 4
0
def answer_question(id, answer):
    global _LOADED_QUIZZES
    result = ""
    id = str(id)
    exists_quiz(id)
    quiz = _LOADED_QUIZZES[id]

    try:
        Quiz.isOpen(quiz)
        if 'PUT' == request.method:
            try:
                result = Quiz.checkAnswer(quiz, answer)
            except CompletedQuizError:
                result = "you won 1 million clams!"
            except NonExistingAnswerError:
                result = "non-existing answer!"
    except CompletedQuizError:
        result = "completed quiz"
    except LostQuizError:
        result = "you lost!"

    return jsonify({"msg": result})
Ejemplo n.º 5
0
def play_quiz(id):
    global _LOADED_QUIZZES
    result = ""
    id = str(id)

    exists_quiz(id)

    if 'GET' == request.method:
        try:
            result = jsonify(Quiz.getQuestion(_LOADED_QUIZZES[id]))
        except CompletedQuizError:
            result = jsonify({"msg": "completed quiz"})
        except LostQuizError:
            result = jsonify({"msg": "you lost!"})

    return result
Ejemplo n.º 6
0
    def test_quiz_iscompleted(self):
        quest = 'q?'
        ans = []
        questions = []
        ans.append(Answer('a', 1))
        ans.append(Answer('b', 0))
        ans.append(Answer('c', 0))
        questions.append(Question(quest, ans))
        questions.append(Question(quest, ans))
        quiz = Quiz(0, questions)

        quiz.checkAnswer('a')
        self.assertFalse(quiz.isCompleted())

        try:
            quiz.checkAnswer('a')
        except CompletedQuizError:
            self.assertTrue(quiz.isCompleted())
Ejemplo n.º 7
0
def create_quiz(request):
    global _LOADED_QUIZZES, _QUIZNUMBER
    json_data = request.get_json()
    qs = json_data['questions']
    questions = []
    for q in qs:
        question = q['question']
        answers = []
        for a in q['answers']:
            answers.append(Answer(a['answer'], a['correct']))
        question = Question(question, answers)
        questions.append(question)

    _LOADED_QUIZZES[str(_QUIZNUMBER)] = Quiz(_QUIZNUMBER, questions)
    _QUIZNUMBER += 1

    return jsonify({'quiznumber': _QUIZNUMBER - 1})
Ejemplo n.º 8
0
def single_quiz(id):
    global _LOADED_QUIZZES
    result = ""
    id = str(id)

    exists_quiz(id)

    if 'GET' == request.method:
        result = jsonify(Quiz.serialize(_LOADED_QUIZZES[id]))

    elif 'DELETE' == request.method:
        # delete a quiz and get back number of answered questions
        quiz = _LOADED_QUIZZES[id]
        del _LOADED_QUIZZES[id]
        result = jsonify({
            "answered_questions": quiz.currentQuestion,
            "total_questions": len(quiz.questions)
        })

    return result
Ejemplo n.º 9
0
    def createDummyQuiz(self):
        json_data = {
            "questions": [{
                "question":
                "What's the answer to all questions?",
                "answers": [{
                    "answer": "33",
                    "correct": 0
                }, {
                    "answer": "42",
                    "correct": 1
                }, {
                    "answer": "1",
                    "correct": 0
                }]
            }, {
                "question":
                "What's the answer to all questions?",
                "answers": [{
                    "answer": "33",
                    "correct": 0
                }, {
                    "answer": "42",
                    "correct": 1
                }, {
                    "answer": "1",
                    "correct": 0
                }]
            }]
        }
        qs = json_data['questions']
        questions = []
        for q in qs:
            question = q['question']
            answers = []
            for a in q['answers']:
                answers.append(Answer(a['answer'], a['correct']))
            question = Question(question, answers)
            questions.append(question)

        return Quiz(1, questions)
Ejemplo n.º 10
0
 def test_quiz_islost(self):
     quest = 'q?'
     ans = []
     questions = []
     ans.append(Answer('a', 1))
     ans.append(Answer('b', 0))
     ans.append(Answer('c', 0))
     questions.append(Question(quest, ans))
     questions.append(Question(quest, ans))
     quiz = Quiz(0, questions)
     quiz.checkAnswer('a')
     self.assertEqual(quiz.currentQuestion, 1)
     try:
         quiz.checkAnswer('b')
     except LostQuizError:
         self.assertEqual(quiz.currentQuestion, -1)
Ejemplo n.º 11
0
 def test_isCompleted(self):
     answer_1 = Answer("la prima", 1)
     answer_2 = Answer("la seconda")
     question = Question("Buona?", [answer_1, answer_2])
     quiz = Quiz(1, [question])
     self.assertEqual(quiz.isCompleted(), False)