Esempio n. 1
0
async def test_attempt_join(mock_execute_dialog: AsyncMock, skip_qtbot):
    # Setup
    mock_execute_dialog.return_value = QDialog.Accepted
    network_client = MagicMock()
    network_client.join_game_session = AsyncMock()
    session_a = GameSessionListEntry(id=1,
                                     name="A Game",
                                     has_password=True,
                                     state=GameSessionState.FINISHED,
                                     num_players=1,
                                     creator="You")
    session_b = GameSessionListEntry(id=2,
                                     name="B Game",
                                     has_password=True,
                                     state=GameSessionState.IN_PROGRESS,
                                     num_players=1,
                                     creator="You")

    dialog = GameSessionBrowserDialog(network_client)
    dialog.sessions = [session_a, session_b]
    dialog.update_list()
    dialog.table_widget.selectRow(0)

    # Run
    await dialog.attempt_join()

    # Assert
    mock_execute_dialog.assert_awaited_once()
    network_client.join_game_session.assert_awaited_once_with(session_b, "")
Esempio n. 2
0
    async def _browse_for_game_session(self):
        if await self._game_session_active():
            return

        if not await self._ensure_logged_in():
            return

        network_client = self.network_client
        browser = GameSessionBrowserDialog(network_client)

        try:
            result = await wait_dialog.cancellable_wait(
                self,
                asyncio.ensure_future(browser.refresh()),
                "Communicating",
                "Requesting the session list...",
            )
        except asyncio.CancelledError:
            return

        if not result:
            return

        if await async_dialog.execute_dialog(browser) == browser.Accepted:
            self.game_session_window = await GameSessionWindow.create_and_update(
                network_client, common_qt_lib.get_game_connection(),
                self.preset_manager, self.window_manager, self.options,
            )
            if self.game_session_window is not None:
                self.game_session_window.show()
Esempio n. 3
0
async def test_attempt_join(mock_execute_dialog: AsyncMock, skip_qtbot):
    # Setup
    utc = datetime.timezone.utc
    mock_execute_dialog.return_value = QDialog.Accepted
    network_client = MagicMock()
    network_client.join_game_session = AsyncMock()
    session_a = GameSessionListEntry(
        id=1,
        name="A Game",
        has_password=True,
        state=GameSessionState.FINISHED,
        num_players=1,
        creator="You",
        creation_date=datetime.datetime(year=2015, month=5, day=1, tzinfo=utc))
    session_b = GameSessionListEntry(id=2,
                                     name="B Game",
                                     has_password=True,
                                     state=GameSessionState.IN_PROGRESS,
                                     num_players=1,
                                     creator="You",
                                     creation_date=datetime.datetime.now(utc) -
                                     datetime.timedelta(days=4))

    dialog = GameSessionBrowserDialog(network_client)
    dialog.sessions = [session_a, session_b]
    dialog.update_list()
    dialog.table_widget.selectRow(0)

    # Run
    await dialog.attempt_join()

    # Assert
    mock_execute_dialog.assert_awaited_once()
    network_client.join_game_session.assert_awaited_once_with(session_b, "")
Esempio n. 4
0
    async def _browse_for_game_session(self):
        if await self._game_session_active():
            return

        if not await self._ensure_logged_in():
            return

        network_client = self.network_client
        browser = GameSessionBrowserDialog(network_client)
        await browser.refresh()
        if await async_dialog.execute_dialog(browser) == browser.Accepted:
            self.game_session_window = await GameSessionWindow.create_and_update(
                network_client, common_qt_lib.get_game_connection(),
                self.preset_manager, self, self._options)
            if self.game_session_window is not None:
                self.game_session_window.show()