def results_overview(self, top): """Calculates the average score and passes it as well as the last score to the gui_results_overview.""" try: sql_m = SqlManager() results_list = sql_m.sql_get_results_content( SettingVariables().selected_results_table) last_score = results_list[-1].score score_list = [score.score for score in results_list] score_average = 0 for score in score_list: score_average += score score_average = str(round(score_average / len(score_list) * 100, 2)) + " %" self.gui_results_overview(top, score_average, last_score) except IndexError as ie: print(str(ie) + " in results_overview") print( "This is OK, if our results table is empty. Otherwise you should inform your admin." )
def test_sql_insert_new_results(self): """Creates a database and results tables, inserts a row into the database table and creates a database copy of the database table. Queries last row_id + 1 and creates a Results object to pass it to the sql_insert_new_results. Then queries last row of the results table and compares it to the variables initially passed. """ test_obj = TestVariables() selected_database = test_obj.selected_database selected_results_table = test_obj.selected_results_table selected_database_copy = test_obj.selected_database_copy self.setUpDatabase() self.setUpResultsTable() self.setUpInsertRow(selected_database) self.setUpDatabaseCopy() answers_right = test_obj.right_answers user_answers_right = test_obj.user_answers_right user_answers_wrong = test_obj.user_answers_wrong row_id = self.setUpRowID("database_table_db_db") results = self.setUpResultsObject(row_id, answers_right, user_answers_right, 1, firsts=2) sql_m = SqlManager() sql_m.sql_insert_new_results(results, selected_results_table) results_objects_list = sql_m.sql_get_results_content(selected_results_table) results_vars_list = results_objects_list[-1] results_vars_query = [results_vars_list.row_id, results_vars_list.question, results_vars_list.right_answers, results_vars_list.user_answers, results_vars_list.score, results_vars_list.time_track, results_vars_list.firsts] results_should_right = [row_id, "question", answers_right, user_answers_right, 1, 0.5, 2] results_should_wrong = [row_id, "question", answers_right, user_answers_wrong, 1, 0.5, 2] self.assertEqual(results_should_right, results_vars_query) self.assertNotEqual(results_should_wrong, results_vars_query) print("test_sql_insert_new_results: successful") self.tearDownTable(selected_database) self.tearDownTable(selected_results_table) self.tearDownTable(selected_database_copy)
def show_testing_results(self): """Opens a window which shows contents of selected_results table.""" sql_m = SqlManager() results_list = sql_m.sql_get_results_content( SettingVariables().selected_results_table) self.gui_show_testing_results(results_list)