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, "")
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()
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, "")
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()