def test_players_db(self): """ Testing player functions player.insert_player_into_db player.get_players_from_db player.get_player_from_db_by_name player.update_player_by_name """ clear_tables(self.db) # test empty players test_players = player.get_players_from_db(GAME_ID1, self.db) assert (test_players == []) test_names = player.get_player_names_from_db(GAME_ID1, self.db) assert (test_names == []) # insert player test_player = player.Player (*TEST_PLAYER_VALUES1) player.insert_player_into_db(test_player, self.db) db_player = player.get_players_from_db(test_player.game_id, self.db)[0] assert db_player == test_player # get player db_player2 = player.get_player_from_db_by_name(db_player.name, db_player.game_id, self.db) assert(db_player2 == db_player) # update player cur_id = db_player.id_num db_player.id_num = cur_id + 1 player.update_player_by_name(db_player, self.db) # get player new_db_player = player.get_player_from_db_by_name( db_player.name, db_player.game_id, self.db) assert(new_db_player.id_num == db_player.id_num)
def initialize_game(game_id, db): """ input: game_id String, db Database """ # initialize players players = player.get_players_from_db(game_id, db) random.seed(2) random.shuffle(players) for i, p in enumerate(players): p.id_num = i p.p_left_name = _get_left_item(players,i).name p.p_right_name = _get_right_item(players,i).name player.update_player_by_name(p, db) # initialize dice dice.insert_dice_into_db(dice.initialize_dice(len(players), game_id), db) status.set_round_in_db(0, game_id, db)
def set_relationship(rel1_role, rel1_option, rel1_player, rel2_role, rel2_option, rel2_player, cur_player_name, pset, game_id, db): """ Updates the database - sets the relationships for one of the neighbor pairs """ rel_indices = playset.get_relationship_indices(rel1_role, rel2_role, rel1_option, rel2_option, pset) if not rel_indices: return ERROR_INVALID_RELATIONSHIP_VALUES # check if dice are ok game_dice = dice.get_dice_from_db(game_id, db) if game_dice.dice_dic[rel_indices[1]+1] <= 0: return ERROR_NOT_ENOUGH_DICE p1 = player.get_player_from_db_by_name(rel1_player, game_id, db) p2 = player.get_player_from_db_by_name(rel2_player, game_id, db) if not p1 or not p2: return ERROR_INVALID_PLAYERS if not rel1_player == cur_player_name and not rel2_player == cur_player_name: return ERROR_CURRENT_PLAYER_NOT_IN_RELATIONSHIP if rel1_player == rel2_player: return ERROR_PLAYERS_MUST_BE_DIFFERENT if p1.p_left_name == p2.name: # neighor is to the left set_left_relationship(rel1_role, rel1_option, playset.get_relationship_id_from_indices( rel_indices, flip_a_b=False), p1, db) set_right_relationship(rel2_role, rel2_option, playset.get_relationship_id_from_indices( rel_indices, flip_a_b=True), p2, db) elif p1.p_right_name == p2.name: # neighbor is to the right set_right_relationship(rel1_role, rel1_option, playset.get_relationship_id_from_indices( rel_indices, flip_a_b=False), p1, db) set_left_relationship(rel2_role, rel2_option, playset.get_relationship_id_from_indices( rel_indices, flip_a_b=True), p2, db) player.update_player_by_name(p1, db) player.update_player_by_name(p2, db) return NO_ERROR
def set_right_relationship(rel_role, rel_option, rel_id, player_obj,db): player_obj.rel_r_role = rel_role player_obj.rel_r_option = rel_option player_obj.rel_r_id = rel_id player.update_player_by_name(player_obj, db)