def run_tests(): r = fhqtest.admin_session.publiceventslist({"page": 0, "onpage": 10}) if r['count'] > 0: pass # TODO remove event_message = fhqtest.generate_random(50).strip() event_message_correct = event_message event_message_correct = event_message_correct.replace('>', '>') event_message_correct = event_message_correct.replace('<', '<') event_message_correct = event_message_correct.replace('"', '"') event_type = "info" print(event_message) r_pub_event1 = fhqtest.admin_session.createpublicevent({ "type": event_type, "message": event_message }) fhqtest.alert(r_pub_event1 == None, 'Could not get response (createpublicevent)') fhqtest.check_response(r_pub_event1, "Public Event succesfull created") pprint(r_pub_event1) time.sleep(1) # TODO redesign on previus request must return data r = fhqtest.admin_session.publiceventslist({ "page": 0, "onpage": 10, "search": event_message }) pub_event1 = r['data'][0] fhqtest.check_values("type of public event", pub_event1['type'], event_type) fhqtest.check_values("message of public event", pub_event1['message'], event_message_correct) r_event1 = fhqtest.admin_session.getpublicevent( {"eventid": pub_event1['id']}) fhqtest.alert(r_event1 == None, 'Could not get response (getpublicevent)') fhqtest.check_response(r_event1, "Public Event succesfull got") r_event1 = r_event1['data'] fhqtest.check_values("(2) type of public event", r_event1['type'], event_type) fhqtest.check_values("(2) message of public event", r_event1['message'], event_message_correct) r_event1_removed = fhqtest.admin_session.deletepublicevent( {"eventid": pub_event1['id']}) fhqtest.alert(r_event1_removed == None, 'Could not get response (deletepublicevent)') fhqtest.check_response(r_event1_removed, "Public Event succesfull removed")
def run_tests(): chat_user1 = None chat_user2 = None chat_user3 = None fhqtest.print_bold("Clean up test data... ") cleanup_user_by_email("chat_user1") cleanup_user_by_email("chat_user2") cleanup_user_by_email("chat_user3") fhqtest.print_success("Cleaning complete") # test create users fhqtest.print_bold("Create " + chat_user1_data['email'] + "...") chat_user1 = fhqtest.admin_session.users_add(chat_user1_data) fhqtest.check_response(chat_user1, chat_user1_data['nick'] + " succesfull created") fhqtest.print_bold("Create " + chat_user2_data['email'] + "...") chat_user2 = fhqtest.admin_session.users_add(chat_user2_data) fhqtest.check_response(chat_user2, chat_user2_data['nick'] + " succesfull created") fhqtest.print_bold("Create " + chat_user3_data['email'] + "...") chat_user3 = fhqtest.admin_session.users_add(chat_user3_data) fhqtest.check_response(chat_user3, chat_user3_data['nick'] + " succesfull created") chat_user1_session = None chat_user2_session = None chat_user3_session = None fhqtest.print_bold("Login " + chat_user1_data['email'] + "...") chat_user1_session = FreeHackQuestClient(fhqtest.TEST_SERVER) chat_user1_login = chat_user1_session.login({ "email": chat_user1_data['email'], "password": chat_user1_data['password'] }) fhqtest.check_response(chat_user1_login, chat_user1_data['nick'] + " succesfull loggined") fhqtest.print_bold("Login " + chat_user2_data['email'] + "...") chat_user2_session = FreeHackQuestClient(fhqtest.TEST_SERVER) chat_user2_login = chat_user2_session.login({ "email": chat_user2_data['email'], "password": chat_user2_data['password'] }) fhqtest.check_response(chat_user2_login, chat_user2_data['nick'] + " succesfull loggined") fhqtest.print_bold("Login " + chat_user3_data['email'] + "...") chat_user3_session = FreeHackQuestClient(fhqtest.TEST_SERVER) chat_user3_login = chat_user3_session.login({ "email": chat_user3_data['email'], "password": chat_user3_data['password'] }) fhqtest.check_response(chat_user3_login, chat_user3_data['nick'] + " succesfull loggined") # send + read send_out_1 = send_msg(chat_user1_session, { "message": "hello", "chat": "0" }) read_out_2 = read_msg(chat_user2_session, {"chat": "0"}) read_out_3 = read_msg(chat_user3_session, {"chat": "0"}) fhqtest.check_values("double reading", read_out_3['messages'], read_out_2['messages']) fhqtest.check_values("sended message", read_out_3['messages'][-1]['message'], send_out_1['message']) fhqtest.check_values("sended message", read_out_2['messages'][-1]['message'], send_out_1['message']) # send + read + edit + read send_out_2 = send_msg(chat_user2_session, {"message": "ho", "chat": "0"}) read_out_3 = read_msg(chat_user3_session, {"chat": "0"}) edit_out_2 = edit_msg(chat_user2_session, { "message_id": send_out_2["message_id"], "message_new": "hi" }) fhqtest.alert( read_out_3['messages'][-1]['message'] == edit_out_2['message'], 'Equal edited message') read_out_1 = read_msg(chat_user1_session, {"chat": "0"}) fhqtest.check_values("edited message", read_out_1['messages'][-1]['message'], edit_out_2['message']) # delete + read cnt_befor = len(read_out_1['messages']) delete_out_2 = delete_msg(chat_user2_session, {"message_id": send_out_2["message_id"]}) fhqtest.check_values("Deleting message", delete_out_2['status'], "ok") read_out_1 = read_msg(chat_user1_session, {"chat": "0"}) fhqtest.check_values("Count message after delete", len(read_out_1['messages']), cnt_befor - 1)
def run_tests(): # Cleanup fhqtest.print_bold("Clean up test data... ") game2 = fhqtest.admin_session.game_info({"uuid": fhqtest.GAME_UUID2}) fhqtest.alert(game2 == None, 'Could not get response') if game2['result'] == "DONE": game2_delete_r = fhqtest.admin_session.game_delete({ "uuid": fhqtest.GAME_UUID2, "admin_password": fhqtest.ADMIN_PASSWORD }) fhqtest.alert(game2_delete_r == None, 'Could not get response (game_delete)') if game2_delete_r['result'] == 'FAIL': fhqtest.log_err("Could not delete prevously game: " + str(game2_delete_r)) raise ValueError('Could not delete prevously game') fhqtest.print_success("Cleaned") game_name = fhqtest.generate_random(255) game_description = fhqtest.generate_random(300) game_teams = fhqtest.generate_random(255) game_state = "original" game_form = "online" game_type = "jeopardy" game_date_start = "2000-01-01 00:00:00" game_date_stop = "2001-01-01 00:00:00" game_date_restart = "2011-01-01 00:00:00" # test create game fhqtest.print_bold("Try create game...") game2 = fhqtest.admin_session.game_create({ "uuid": fhqtest.GAME_UUID2, "name": game_name, "description": game_description, "state": game_state, "form": game_form, "type": game_type, "date_start": game_date_start, "date_stop": game_date_stop, "date_restart": game_date_restart, "organizators": game_teams }) fhqtest.alert(game2 == None, 'Could not get response (2)') fhqtest.check_response(game2, "Game succesfull created") if game2['result'] == 'FAIL': raise ValueError('Could not create game') # test find game fhqtest.print_bold("Find game by uuid... ") game2 = fhqtest.admin_session.game_info({"uuid": fhqtest.GAME_UUID2}) fhqtest.alert(game2 == None, 'Could not get response') fhqtest.check_response(game2, "Game found") game2 = game2['data'] fhqtest.check_values("name of game", game2['name'], game_name) fhqtest.check_values("organizators of game", game2['organizators'], game_teams) fhqtest.check_values("form of game", game2['form'], game_form) fhqtest.check_values("state of game", game2['state'], game_state) fhqtest.check_values("type of game", game2['type'], game_type) fhqtest.check_values("description of game", game2['description'], game_description) fhqtest.check_values("maxscore of game", game2['maxscore'], 0) gameid = game2['local_id'] # print("gameid: " + str(gameid)) # list of games fhqtest.print_bold("Get list of games... ") games_list = fhqtest.admin_session.games({}) fhqtest.alert(game2 == None, 'Could not get response') fhqtest.check_response(games_list, "Games list got") bFound = False for game_ in games_list['data']: if game_['uuid'] == fhqtest.GAME_UUID2: bFound = True if bFound != True: fhqtest.log_err("Game not found in list") else: fhqtest.print_success("Game found in list") ''' Update game name ''' game_name = fhqtest.generate_random(255) fhqtest.print_bold("Update game... ") game_updt = fhqtest.admin_session.game_update({ "uuid": fhqtest.GAME_UUID2, "name": game_name, }) fhqtest.alert(game_updt == None, 'Could not get response') if game_updt['result'] == 'FAIL': fhqtest.log_err(game_updt['error']) else: game2_new = fhqtest.admin_session.game_info( {"uuid": fhqtest.GAME_UUID2}) fhqtest.print_bold("Check name after update... ") fhqtest.check_response(game2_new, "Games list got") game2_new = game2_new['data'] fhqtest.print_bold("Check the game updated name... ") if game2_new['name'] != game_name: fhqtest.log_err("Game updated has wrong name expected '" + game_name + "' got '" + game2_new['name'] + "'") else: fhqtest.print_success("Game the game updated name ok") fhqtest.print_bold("Check the game updated organizators... ") if game2_new['organizators'] != game_teams: fhqtest.log_err("Game updated has wrong organizators expected '" + game_teams + "' got '" + game2_new['organizators'] + "'") else: fhqtest.print_success("Game the game updated organizators ok") fhqtest.print_bold("Check the game updated description... ") if game2_new['description'] != game_description: fhqtest.log_err("Game updated has wrong description expected '" + game_description + "' got '" + game2_new['description'] + "'") else: fhqtest.print_success("Game the game updated description ok") fhqtest.print_bold("Check the game updated maxscore... ") if game2_new['maxscore'] != 0: fhqtest.log_err( "Game updated has wrong maxscore expected '0' got '" + str(game2_new['maxscore']) + "'") else: fhqtest.print_success("Game the game updated maxscore ok") # TODO upload log for test game fhqtest.print_bold("Game update logo test... ") f = open("files/game1.png", 'rb') image_png_base64 = f.read() f.close() img_len = len(image_png_base64) if img_len != 17045: fhqtest.log_err("Game Logo wrong size, current " + str(img_len) + ", but expected 17045") image_png_base64 = base64.b64encode(image_png_base64) image_png_base64 = image_png_base64.decode("utf-8") game_img = fhqtest.admin_session.game_update_logo({ "uuid": fhqtest.GAME_UUID2, "image_png_base64": image_png_base64 }) fhqtest.alert(game_img == None, 'Could not get response') fhqtest.check_response(game_img, "Game Logo updated") # cleanup export files fhqtest.print_bold("Game cleanup export test... ") tmp_dir_unpack_zip = fhqtest.TMP_DIR + '/game2' game_zip_path = fhqtest.TMP_DIR + '/game_' + fhqtest.GAME_UUID2 + '.zip' if os.path.isdir(tmp_dir_unpack_zip): shutil.rmtree(tmp_dir_unpack_zip) if os.path.exists(game_zip_path): os.remove(game_zip_path) # export fhqtest.print_bold("Game export test... ") game_exp = fhqtest.admin_session.game_export({"uuid": fhqtest.GAME_UUID2}) fhqtest.alert(game_exp == None, 'Could not get response') fhqtest.check_response(game_exp, "Game exported") if 'game_' + fhqtest.GAME_UUID2 + '.zip' != game_exp['data'][ 'zipfile_name']: fhqtest.log_err("zipfile_name for game is wrong ") game_zip = base64.b64decode(game_exp['data']['zipfile_base64']) f = open(game_zip_path, 'wb') f.write(game_zip) f.close() zip_ref = zipfile.ZipFile(game_zip_path, 'r') zip_ref.extractall(tmp_dir_unpack_zip) zip_ref.close() img_exported_path = tmp_dir_unpack_zip + '/' + fhqtest.GAME_UUID2 + '.png' json_exported_path = tmp_dir_unpack_zip + '/' + fhqtest.GAME_UUID2 + '.json' if not os.path.exists(img_exported_path): fhqtest.log_err("Not found image in zip " + img_exported_path) if not os.path.exists(json_exported_path): fhqtest.log_err("Not found json in zip " + json_exported_path) else: with open(json_exported_path) as f: game2_exported = json.load(f) # pprint(game2_exported) fhqtest.print_bold("Check the export game name... ") if game2_exported['name'] != game_name: fhqtest.log_err("Exported game has wrong name expected '" + game_name + "' got '" + game2_exported['name'] + "'") else: fhqtest.print_success("Exported game name ok") fhqtest.print_bold("Check the export game organizators... ") if game2_exported['organizators'] != game_teams: fhqtest.log_err("Exported game has wrong organizators expected '" + game_teams + "' got '" + game2_exported['organizators'] + "'") else: fhqtest.print_success("Exported game organizators ok") fhqtest.print_bold("Check the export game description... ") if game2_exported['description'] != game_description: fhqtest.log_err("Exported game has wrong description expected '" + game_description + "' got '" + game2_exported['description'] + "'") else: fhqtest.print_success("Exported game description ok") fhqtest.print_bold("Check the export game maxscore... ") if game2_exported['maxscore'] != 0: fhqtest.log_err( "Exported game has wrong maxscore expected '0' got '" + str(game2_exported['maxscore']) + "'") else: fhqtest.print_success("Exported game maxscore ok") gameid = game2_exported['local_id'] # print(game_exp) # remove game fhqtest.print_bold("Remove game by uuid... ") resp = fhqtest.admin_session.game_delete({ "uuid": fhqtest.GAME_UUID2, "admin_password": fhqtest.ADMIN_PASSWORD }) fhqtest.check_response(resp, "Game removed") fhqtest.check_response(resp, "TODO Game import") '''
def run_tests(): # Cleanup fhqtest.clean_all_quests() gameid = fhqtest.find_first_gameid() # TODO symlinks to quests_create quest_name = fhqtest.generate_random(255).strip() quest_text = fhqtest.generate_random(300).strip() quest_answer = fhqtest.generate_random(255).strip() quest_answer_format = fhqtest.generate_random(255).strip() quest_author = fhqtest.generate_random(50).strip() quest_state = "open" quest_subject = "trivia" quest_score = 555 quest_description_state = fhqtest.generate_random(255).strip() quest_copyright = fhqtest.generate_random(100).strip() fhqtest.print_bold("Try create quest...") quest1 = fhqtest.admin_session.createquest({ "uuid": fhqtest.QUEST_UUID1, "gameid": gameid, "name": quest_name, "text": quest_text, "score": quest_score, "author": quest_author, "subject": quest_subject, "answer": quest_answer, "answer_format": quest_answer_format, "state": quest_state, "description_state": quest_description_state, "copyright": quest_copyright, }) fhqtest.alert(quest1 == None, 'Could not get response (2)') fhqtest.check_response(quest1, "Quest succesfull created") questid1 = quest1['questid'] quest1_new = fhqtest.admin_session.quest({"questid": questid1}) quest1_new_hints = quest1_new['hints'] quest1_new_files = quest1_new['files'] quest1_new_game = quest1_new['game'] quest1_new = quest1_new['quest'] pprint(quest1_new) fhqtest.check_values("name of quest", quest1_new['name'], quest_name) fhqtest.check_values("author of quest", quest1_new['author'], quest_author) fhqtest.check_values("answer of quest", quest1_new['answer'], quest_answer) fhqtest.check_values("answer format of quest", quest1_new['answer_format'], quest_answer_format) fhqtest.check_values("description_state of quest", quest1_new['description_state'], quest_description_state) fhqtest.check_values("score of quest", quest1_new['score'], quest_score) fhqtest.check_values("state of quest", quest1_new['state'], quest_state) fhqtest.check_values("subject of quest", quest1_new['subject'], quest_subject) fhqtest.check_values("text of quest", quest1_new['text'], quest_text) fhqtest.check_values("copyright of quest", quest1_new['copyright'], quest_copyright) quest1_hint1 = fhqtest.generate_random(255).strip() quest1_hint2 = fhqtest.generate_random(255).strip() quest1_hint3 = fhqtest.generate_random(255).strip() fhqtest.print_bold("Add hint to quest...") h1 = fhqtest.admin_session.addhint({"questid": questid1, "hint": quest1_hint1}) fhqtest.alert(h1 == None, 'Could not get response (hint1)') fhqtest.check_response(h1, "Quest hint succesfull created") pprint(h1) h2 = fhqtest.admin_session.addhint({"questid": questid1, "hint": quest1_hint2}) fhqtest.alert(h2 == None, 'Could not get response (hint2)') fhqtest.check_response(h2, "Quest hint succesfull created") pprint(h2) h3 = fhqtest.admin_session.addhint({"questid": questid1, "hint": quest1_hint3}) fhqtest.alert(h3 == None, 'Could not get response (hint3)') fhqtest.check_response(h3, "Quest hint succesfull created") pprint(h3) # TODO return id and text fhqtest.print_bold("Try update quest...") quest_name2 = fhqtest.generate_random(255).strip() quest_text2 = fhqtest.generate_random(300).strip() quest_answer2 = fhqtest.generate_random(255).strip() quest_answer_format2 = fhqtest.generate_random(255).strip() quest_author2 = fhqtest.generate_random(50).strip() quest_state2 = "broken" quest_subject2 = "stego" quest_score2 = 456 quest_description_state2 = fhqtest.generate_random(255).strip() quest_copyright2 = fhqtest.generate_random(100).strip() quest1_update = fhqtest.admin_session.quest_update({ "questid": questid1, "name": quest_name2, "gameid": gameid, "text": quest_text2, "score": quest_score2, "author": quest_author2, "subject": quest_subject2, "answer": quest_answer2, "answer_format": quest_answer_format2, "state": quest_state2, "description_state": quest_description_state2, "copyright": quest_copyright2, }) fhqtest.alert(quest1_update == None, 'Could not get response (4)') fhqtest.check_response(quest1_update, "Quest succesfull update") quest1_updated = fhqtest.admin_session.quest({"questid": questid1}) quest1_updated_hints = quest1_updated['hints'] quest1_updated_files = quest1_updated['files'] quest1_updated_game = quest1_updated['game'] quest1_updated = quest1_updated['quest'] print("quest1_updated = " + str(quest1_updated)) fhqtest.check_values("name of quest", quest1_updated['name'], quest_name2) fhqtest.check_values("author of quest", quest1_updated['author'], quest_author2) fhqtest.check_values("answer of quest", quest1_updated['answer'], quest_answer2) fhqtest.check_values("answer format of quest", quest1_updated['answer_format'], quest_answer_format2) fhqtest.check_values("description_state of quest", quest1_updated['description_state'], quest_description_state2) fhqtest.check_values("score of quest", quest1_updated['score'], quest_score2) fhqtest.check_values("state of quest", quest1_updated['state'], quest_state2) fhqtest.check_values("subject of quest", quest1_updated['subject'], quest_subject2) fhqtest.check_values("text of quest", quest1_updated['text'], quest_text2) fhqtest.check_values("copyright of quest", quest1_updated['copyright'], quest_copyright2) fhqtest.check_values("hint1 of quest", quest1_updated_hints[0]['text'], quest1_hint1) fhqtest.check_values("hint2 of quest", quest1_updated_hints[1]['text'], quest1_hint2) fhqtest.check_values("hint3 of quest", quest1_updated_hints[2]['text'], quest1_hint3) # try remove hint h2_remove = fhqtest.admin_session.deletehint({"hintid": quest1_updated_hints[1]['id']}) fhqtest.alert(h2_remove == None, 'Could not get response (hint2_remove)') fhqtest.check_response(h2_remove, "Quest hint2 succesfull removed") fhqtest.print_bold("Try upload file to quest...") # pprint(quest1_updated) quest_uuid = quest1_updated['uuid'] resp = fhqtest.admin_session.quests_files_upload({ "quest_uuid": quest_uuid, "file_base64": "SGVsbG8gd29ybGQh", "file_name": "test1.txt", }) fhqtest.alert(resp['result'] == 'FAIL', 'Wrong response') fhqtest.check_response(resp, "Quest quests_files_upload succesfull") questid = quest1_updated['id'] resp = fhqtest.admin_session.quests({"gameid": gameid}) fhqtest.alert(resp == None, 'Could not get response (quests)') fhqtest.check_response(resp, "quest get filtered") fhqtest.alert(resp['result'] == 'FAIL', 'Wrong response') fhqtest.alert(resp['data'][0]['questid'] != questid, 'Wrong work filter by gameid in request quests') # fhqtest.print_bold("Try answerlist...") r_answerlist = fhqtest.admin_session.answerlist({"page": 0, "onpage": 10}) fhqtest.alert(r_answerlist == None, 'Could not get response (r_answerlist)') fhqtest.check_response(r_answerlist, "Answer list succesfull got") pprint(r_answerlist) # TODO check this # Cleanup fhqtest.clean_all_quests()