Exemplo n.º 1
0
    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
Exemplo n.º 4
0
    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!")
Exemplo n.º 5
0
    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")
Exemplo n.º 6
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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()
Exemplo n.º 11
0
 def delete_test_game(self):
     dao.delete_game_by_name(self.test_game.game_name)
Exemplo n.º 12
0
    def add_test_game(self):
        try:
            dao.add_game(self.test_game)

        except GameAlreadyExistsException:
            print("Error while adding new game. Raised GameAlreadyExistsException!")
Exemplo n.º 13
0
    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')