def test_if_can_update_player_on_leaderboard_and_if_can_update_leaderboard(
            self):
        test_ranked_data = [{
            "duration": 250,
            "rank": 1,
            "score": 90,
            "username": "******"
        }, {
            "duration": 400,
            "rank": 2,
            "score": 55,
            "username": "******"
        }, {
            "duration": 200,
            "rank": 3,
            "score": 50,
            "username": "******"
        }]
        leaderboard_single.update_leaderboard(test_ranked_data)
        data = files.read_data_file("leaderboard")
        test_player = {
            "duration": 300,
            "rank": 2,
            "score": 90,
            "username": "******"
        }
        leaderboard_single.update_player_on_leaderboard(test_player, data)
        test_player_two = {
            "duration": 500,
            "rank": 2,
            "score": 95,
            "username": "******"
        }
        leaderboard_single.update_player_on_leaderboard(test_player_two, data)
        test_ranked_data_two = [{
            "duration": 500,
            "rank": 1,
            "score": 95,
            "username": "******"
        }, {
            "duration": 250,
            "rank": 2,
            "score": 90,
            "username": "******"
        }, {
            "duration": 200,
            "rank": 3,
            "score": 50,
            "username": "******"
        }]
        data = files.read_data_file("leaderboard")
        self.assertEqual(test_ranked_data_two, data)

        empty_data = []
        leaderboard_single.update_leaderboard(empty_data)
 def test_if_can_append_to_file(self):
     
     data = files.read_data_file("countries")
     data_copy = data
     self.assertNotIn("hello", data)
     
     files.append_to_file("hello", "countries")
     data_updated = files.read_data_file("countries")
     self.assertIn("hello", data_updated)
     
     files.overwrite_file("countries", data_copy)
 def test_if_file_can_be_overwritten(self):
     data = files.read_data_file("countries")
     data_copy = data
     self.assertEqual(200, len(data))
     
     files.overwrite_file("countries", "hello")
     data_overwritten = files.read_data_file("countries")
     self.assertEqual(5, len(data_overwritten))
     self.assertEqual("hello", data_overwritten)
     
     files.overwrite_file("countries", data_copy)
Пример #4
0
 def test_if_can_remove_games_older_than_a_day(self):
     files.append_to_file(game_multi.create_game("testGame31"), "game_multi")
     creation_time = game_multi.extract_value_from_game("testGame31", "time_of_creation")
     current_time = time.time()
     game_multi.remove_games_older_than_a_day(current_time)   
     data = files.read_data_file("game_multi")
     game = game_multi.select_game("testGame31", data)
     self.assertIn(game, data)
     
     day_from_now = current_time + 86400
     game_multi.remove_games_older_than_a_day(day_from_now) 
     data_two = files.read_data_file("game_multi")
     self.assertNotIn(game, data_two)
     
     
Пример #5
0
def append_incorrect_answers(username, answer):
    data = files.read_data_file("users")
    target_game = select_game_of_player(username, data)

    target_game["incorrect_answers"].append(answer)

    overwrite_game(username, target_game, data)
def remove_games_older_than_a_day(current_time):
    data = files.read_data_file("game_multi")
    
    for game in data:
        if game["time_of_creation"] + 86400 < current_time:
            remove_game_from_data(game["game_name"])
            
Пример #7
0
def check_if_username_exists(username):
    data = files.read_data_file("users")

    if any(obj["username"] == username for obj in data):
        return True
    else:
        return False
Пример #8
0
    def test_that_a_game_can_be_overwritten(self):
        game = game_multi.create_game("testGame3")
        files.append_to_file(game, "game_multi")
        data = files.read_data_file("game_multi")
        game = game_multi.select_game("testGame3", data)
        self.assertEqual(game, game)

        test_game = {
            "game_name": "testGame3",
            "time_of_creation": 0,
            "players": 0,
            "players_copy": 0,
            "round_number": 0,
            "flag_number": 0,
            "turn_of_player": 0,
            "points": 0,
            "list_of_countries": 0,
            "game_state": 0
        }
        game_multi.overwrite_game("testGame3", test_game, data)
        overwritten_game = game_multi.select_game("testGame3", data)
        self.assertEqual(0, overwritten_game["players"])
        self.assertEqual(0, overwritten_game["game_state"])
        self.assertEqual(0, overwritten_game["points"])
        self.assertEqual(0, overwritten_game["round_number"])
        
        game_multi.remove_game_from_data("testGame3")
def check_if_game_exists(game_name):
    data = files.read_data_file("game_multi")
    
    if any(game["game_name"] == game_name for game in data):
        return True
    else:
        return False
Пример #10
0
 def test_if_target_game_can_be_selected_by_name(self):
     game = game_multi.create_game("testGame2")
     files.append_to_file(game, "game_multi")
     data = files.read_data_file("game_multi")
     game = game_multi.select_game("testGame2", data)
     self.assertEqual(game, game)
     
     game_multi.remove_game_from_data("testGame2")
def overwrite_game_value(game_name, key_name, value):
    data = files.read_data_file("game_multi")
    
    for game in data:
        if game["game_name"] == game_name:
            game[key_name] = value
            
    files.overwrite_file("game_multi", data)
def check_if_player_exists(game_name, username):
    data = files.read_data_file("game_multi")
    target_game = select_game(game_name, data)
    list_of_players = target_game["players"]
    
    if any(player["username"] == username for player in list_of_players):
        return True
    else:
        return False
Пример #13
0
def remove_player_from_data_by_index(index):
    data = files.read_data_file("users")

    if index > len(data):
        return False
    else:
        data.pop(index)

    files.overwrite_file("users", data)
Пример #14
0
def return_player_score(username):
    data = files.read_data_file("users")
    current_user = {}

    for user in data:
        if user["username"] == username:
            current_user = user

    return current_user["score"]
def remove_game_from_data(game_name):
    data = files.read_data_file("game_multi")
    updated_data = []
    
    for game in data:
        if game["game_name"] != game_name:
            updated_data.append(game)
            
    files.overwrite_file("game_multi", updated_data)
Пример #16
0
def check_if_password_matches(username, password):
    data = files.read_data_file("users")

    for player in data:
        if player["username"] == username:
            if player["password"] == password:
                return True
            else:
                return False
def return_player_by_turn(turn_of_player, game_name):
    data = files.read_data_file("game_multi")
    player_list = []
    
    for game in data:
        if game["game_name"] == game_name:
            player_list = game["players"]
            
    return player_list[turn_of_player]
def update_player_list(game_name):
    data = files.read_data_file("game_multi")
    sorted_players = change_rank_of_players((game_name))
    
    for game in data:
        if game["game_name"] == game_name:
            game["players"] = sorted_players
            
    files.overwrite_file("game_multi", data)
def check_if_five_players(game_name):
    data = files.read_data_file("game_multi")
    target_game = select_game(game_name, data)
    list_of_players = target_game["players"]
    
    if len(list_of_players) == 5:
        return True
    else:
        return False
Пример #20
0
    def test_if_can_remove_user_by_index(self):
        file_path = files.create_file_path("users")
        data = files.read_data_file("users")
        data_length = len(data)

        users.add_player_to_data("testUser6", "none", "none")
        users.add_player_to_data("testUser7", "none", "none")

        user_index_zero = users.create_player("testUser6", "none", 0, "none")
        user_index_one = users.create_player("testUser7", "none", 0, "none")

        data_two = files.read_data_file("users")
        self.assertEqual(data_two[data_length], user_index_zero)
        users.remove_player_from_data_by_index(data_length)

        data_three = files.read_data_file("users")
        self.assertEqual(data_three[data_length], user_index_one)
        users.remove_player_from_data_by_index(data_length)
Пример #21
0
def remove_player_from_data(username):
    data = files.read_data_file("users")
    updated_data = []

    for obj in data:
        if obj["username"] != username:
            updated_data.append(obj)

    files.overwrite_file("users", updated_data)
Пример #22
0
 def test_if_can_extract_value_for_given_key_from_target_game(self):
     files.append_to_file(game_multi.create_game("testGame7"), "game_multi")
     data = files.read_data_file("game_multi")
     game = game_multi.select_game("testGame7", data)
     self.assertEqual(1, game["round_number"])
     
     extracted_value = game_multi.extract_value_from_game("testGame7", "round_number")
     self.assertEqual(extracted_value, game["round_number"])
     
     game_multi.remove_game_from_data("testGame7")
def decrease_points(game_name):
    data = files.read_data_file("game_multi")
    target_game = select_game(game_name, data)
    
    if target_game["points"] == 1:
        target_game["points"] = 0
    else:
        target_game["points"] -= 2
        
    overwrite_game(game_name, target_game, data)
def list_players_elapsed_time(game_name):
    data = files.read_data_file("game_multi")
    list_of_players = extract_value_from_game(game_name, "players")
    list_of_player_times = []
    
    for player in list_of_players:
        player_time = misc.convert_time_for_display(player["elapsed_time"])
        list_of_player_times.append(player_time)
        
    return list_of_player_times
Пример #25
0
def decrease_round_points(username):
    data = files.read_data_file("users")
    target_game = select_game_of_player(username, data)

    if target_game["points"] < 2:
        target_game["points"] = 0
    else:
        target_game["points"] -= 2

    overwrite_game(username, target_game, data)
def sort_players_for_leaderboard_display(game_name):
    data = files.read_data_file("game_multi")
    list_of_players = extract_value_from_game(game_name, "players")
    players_sorted_by_game_duration = sorted(list_of_players, key=itemgetter('elapsed_time'))
    players_sorted_by_score = sorted(players_sorted_by_game_duration, key=itemgetter('score'), reverse=True)
    
    for game in data:
        if game["game_name"] == game_name:
            game["players"] = players_sorted_by_score
            
    return players_sorted_by_score
def set_turn_of_player(game_name, number_of_players):
    data = files.read_data_file("game_multi")
    target_game = select_game(game_name, data)
    
    if target_game["turn_of_player"] == number_of_players - 1:
        # number_of_players - 1 = last player's index number
        target_game["turn_of_player"] = 0
    else:
        target_game["turn_of_player"] += 1
        
    overwrite_game(game_name, target_game, data)
Пример #28
0
def increase_player_score(username, points):
    data = files.read_data_file("users")
    current_user = {}

    for user in data:
        if user["username"] == username:
            current_user = user

    current_user["score"] += points

    files.overwrite_file("users", data)
Пример #29
0
 def test_if_player_can_be_added_to_game(self):
     files.append_to_file(game_multi.create_game("testGame4"), "game_multi")
     data = files.read_data_file("game_multi")
     game = game_multi.select_game("testGame4", data)
     self.assertEqual([], game["players"])
     
     test_player = {
         "username": "******",
         "score": 0,
         "rank": 0,
         "start_time": 0.0,
         "elapsed_time": 0.0,
         "incorrect_answers": []
     }
     game_multi.add_player_to_game("testGame4", test_player)
     data_two = files.read_data_file("game_multi")
     game_two = game_multi.select_game("testGame4", data_two)
     self.assertIn(test_player, game_two["players"])
     
     game_multi.remove_game_from_data("testGame4")
Пример #30
0
def reset_player_score(username):
    data = files.read_data_file("users")
    current_user = {}

    for user in data:
        if user["username"] == username:
            current_user = user

    current_user["score"] = 0

    files.overwrite_file("users", data)