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)
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)
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)
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')
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)
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')