Пример #1
0
 def test_delete_is_working(self):
     with DB() as database:
         test = Test().create()
         test.id = database.execute('''SELECT id FROM tests WHERE title = ?''', \
          (test.title,)).fetchone()[0]
     with DB() as database:
         test.delete()
     self.assertEqual(Test.find(test.id), None)
Пример #2
0
 def test_update_is_working(
     self
 ):  # might not work with different test titles (which is why DISTINCT exists!)
     with DB() as database:
         test = Test().create()
         test.id = database.execute('''SELECT id FROM tests WHERE title = ?''', \
          (test.title,)).fetchone()[0]
     with DB() as database:
         test.update("NewTest", test.questions).edit()
     self.assertEqual(Test.find(test.id), test)
Пример #3
0
def grade_test(id):
    global answers
    test = Test.find(id)
    test.set_answers(answers)
    test.check_test()
    grade = test.count_correct()
    user = User.find_by_username(session['USERNAME'])
    User.insert_grade(user, grade)
    answers = []
    app.logger.info("Test successfuly graded")
    return render_template('test_grade.html', test=test)
Пример #4
0
def delete_test():
    if request.method == 'GET':
        return render_template('delete_test.html', tests=Test.get_all())
    elif request.method == 'POST':
        test = Test.find(int(request.form['tests']))
        test.delete()

        app.logger.info('Test "%s" was deleted successfully',
                        request.form['tests'])

        return redirect('/homepage')
Пример #5
0
def show_test(id):
    test = Test.find(id)  # get instance dependent on id
    if request.method == 'GET':
        # implement corner case where ID is not in table -> exception
        return render_template('test.html', test=test)
    elif request.method == 'POST':
        # implement corner case where ID is not in table -> exception
        # get instance dependent on id
        for question in test.questions:
            answers.append(
                request.form[str(test.questions.index(question) + 1)])

        app.logger.info("Tests successfuly rendered")
        return redirect('/test/%d/grade' % id)
Пример #6
0
def edit_test():
    if request.method == 'GET':
        return render_template('edit_test.html',
                               tests=Test.get_all(),
                               questions=Question.get_all())
    elif request.method == 'POST':
        test = Test.find(int(request.form['tests']))

        values = (request.form['title'])

        questions = [
            Question.find(request.form['question_one']),
            Question.find(request.form['question_two']),
            Question.find(request.form['question_three'])
        ]

        test.update(values, questions).edit()
        app.logger.info("Test %s was succesfully edited",
                        request.form['title'])
        return redirect('/homepage')