def setUp(self): self.manage_game = ManageGame(MagicMock(), 'ADD') for game in dao.get_all_games(): dao.delete_game_by_name(game.game_name) self.players_number = 5 self.test_game = Game('Test game', '2', '5', '01:30', '30:00', 'queue')
def delete_game(self): """ Sends delete requests with game name to delete. :return: """ dao.delete_game_by_name(self.currently_selected_game) self.update_games_list_view()
def init_database(): """ Initializes database. Creates a 'games' table and add three examples games to database. :return: """ dao.create_db_schema() games = example_games() for game in games: try: dao.add_game(game) except GameAlreadyExistsException: pass
def update_game(self): """ Pass request to dao for updating currently defined game. :return: """ try: game = self.gather_data() dao.update_game(game) self.exit_window() except gather_data_exception.GatherDataException: print("Error while editing a game. Raised GatherDataException!")
def add_game(self): """ Pass request to dao for adding currently defined game. :return: """ try: game = self.gather_data() dao.add_game(game) self.exit_window() except gather_data_exception.GatherDataException: print("Error while adding new game. Raised GatherDataException!") except game_already_exists_exception.GameAlreadyExistsException: print("Error while adding new game. Raised GameAlreadyExistsException!") self.show_incorrect_data_message_box("Game of that name already exists. Choose another " "name of the game or edit the existing one")
def test_delete_game(self): self.add_test_game() self.bgt = BgtMain() self.bgt.myGamesListWidget.setCurrentRow(0) self.bgt.show_game_quick_view() assert self.test_game.game_name == self.bgt.currently_selected_game assert dao.get_game_by_name(self.test_game.game_name) is not None self.bgt.delete_game() self.assertRaises(GameNotExistException, dao.get_game_by_name, self.test_game.game_name)
def update_games_list_view(self): """ Updates 'My games' list view with actual games stored in database. :return: """ self.clear_main_view() self.games = dao.get_all_games() self.myGamesListWidget.addItems( sorted([game.game_name for game in self.games])) self.myGamesListWidget.itemClicked.connect(self.show_game_quick_view)
def edit_game_setup_ui(self, game_name): """ Setup ui for 'EDIT' window type. :param game_name: :return: """ game: Game = dao.get_game_by_name(game_name) self.gameNameLineEdit.setText(game_name) self.gameNameLineEdit.setDisabled(True) self.minPlayersSpinBox.setValue(int(game.min_players)) self.maxPlayersSpinBox.setValue(int(game.max_players)) self.roundTimeEdit.setTime(datetime.strptime(game.round_time, '%M:%S').time()) self.gameTimeEdit.setTime(datetime.strptime(game.game_time, '%M:%S').time()) self.gameTypeComboBox.setCurrentText(game.game_type) self.manageGameLabel.setText("EDIT GAME") self.manageGameButton.setText("EDIT GAME") self.manageGameButton.clicked.connect(self.update_game)
def __init__(self, bgt_window, game_name, players_number): """ Initializes a PlayGameWindow. :param bgt_window: main window view class. :param game_name: name of the actual playing game. :param players_number: number of players actual playing. """ super().__init__() self.bgt_window = bgt_window self.setupUi(self) self.showMaximized() self.setWindowTitle("Board Game Timer - Play Game Window") self.game: Game = dao.get_game_by_name(game_name) self.players_number = int(players_number) self.setup_play_game_ui() self.endRoundButton.clicked.connect(self.end_round) self.passButton.clicked.connect(self.pass_tour) self.pauseButton.clicked.connect(self.pause_game) self.endGameButton.clicked.connect(self.end_game) self.actual_queue = [] self.next_queue = [] self.prepare_players_queue() self.update_players_queue_table_widget() self.actual_player: Player = self.get_actual_player() self.actual_play_thread = None self.semaphore = False self.actual_round_time_left = 0 self.actual_game_time_left = 0 self.update_actual_player_frame()
def show_game_quick_view(self): """ Shows the preview of a game to play. :return: """ self.currently_selected_game = self.myGamesListWidget.currentItem( ).text() game: Game = dao.get_game_by_name(self.currently_selected_game) self.gameNameLabel.setText(game.game_name) self.playersNumberSpinBox.setValue(int(game.min_players)) self.playersNumberSpinBox.setMinimum(int(game.min_players)) self.playersNumberSpinBox.setMaximum(int(game.max_players)) self.roundTimeInfoLabel.setText(str(game.round_time)) self.gameTimeInfoLabel.setText(str(game.game_time)) self.gameQuickViewFrame.show() self.deleteGameButton.clicked.connect(self.delete_game_message) self.editGameButton.clicked.connect(self.open_edit_game_window) self.playButton.clicked.connect(self.open_play_game_window) self.playButton.show()
def delete_test_game(self): dao.delete_game_by_name(self.test_game.game_name)
def add_test_game(self): try: dao.add_game(self.test_game) except GameAlreadyExistsException: print("Error while adding new game. Raised GameAlreadyExistsException!")
def setUp(self): for game in dao.get_all_games(): dao.delete_game_by_name(game.game_name) self.test_game = Game('Test game', '2', '5', '01:30', '30:00', 'queue')