Exemple #1
0
def _window(skip_qtbot):
    game_connection = MagicMock(spec=GameConnection)
    game_connection.executor = AsyncMock()
    game_connection.lock_identifier = None
    game_connection.pretty_current_status = "Pretty Status"
    window = GameSessionWindow(MagicMock(), game_connection, MagicMock(),
                               MagicMock(), MagicMock())
    window.connect_to_events()
    return window
async def test_on_close_event(window: GameSessionWindow, mocker, dialog_response, is_member):
    # Setup
    execute_dialog = mocker.patch("randovania.gui.lib.async_dialog.warning", new_callable=AsyncMock,
                                  return_value=dialog_response)
    super_close_event = mocker.patch("PySide2.QtWidgets.QMainWindow.closeEvent")
    event = MagicMock()
    window._game_session = MagicMock()
    window._game_session.players = [window.network_client.current_user.id] if is_member else []
    window.network_client.leave_game_session = AsyncMock()
    window.network_client.connection_state.is_disconnected = dialog_response == QMessageBox.Yes

    # Run
    await window._on_close_event(event)

    if is_member:
        execute_dialog.assert_awaited_once()
    else:
        execute_dialog.assert_not_awaited()

    if is_member and dialog_response == QMessageBox.Cancel:
        event.ignore.assert_called_once_with()
        super_close_event.assert_not_called()
    else:
        event.ignore.assert_not_called()
        super_close_event.assert_called_once_with(event)

    if is_member and dialog_response != QMessageBox.Cancel:
        window.network_client.leave_game_session.assert_awaited_once_with(dialog_response == QMessageBox.Yes)
    else:
        window.network_client.leave_game_session.assert_not_awaited()
def _window(skip_qtbot):
    game_connection = MagicMock()
    game_connection.backend.lock_identifier = None
    game_connection.pretty_current_status = "Pretty Status"
    window = GameSessionWindow(MagicMock(), game_connection, MagicMock(),
                               MagicMock(), MagicMock())
    return window
Exemple #4
0
async def test_on_game_session_actions_update(window: GameSessionWindow,
                                              default_echoes_preset):
    # Setup
    game_session = MagicMock()
    game_session.presets = [default_echoes_preset]
    window._game_session = game_session
    timestamp = datetime.datetime(year=2020, month=1, day=5)

    # Run
    await window.on_game_session_actions_update(
        GameSessionActions((GameSessionAction("A", 0, "B", "Bombs",
                                              PickupIndex(0), timestamp), )))

    texts = [window.history_table_widget.item(0, i).text() for i in range(5)]
    assert texts == [
        'A', 'B', 'Bombs', 'Temple Grounds/Hive Chamber A/Pickup (Missile)',
        timestamp.strftime("%c")
    ]
Exemple #5
0
async def test_on_close_event(window: GameSessionWindow, mocker, is_member):
    # Setup
    super_close_event = mocker.patch(
        "PySide6.QtWidgets.QMainWindow.closeEvent")
    event = MagicMock()
    window._game_session = MagicMock()
    window._game_session.players = [window.network_client.current_user.id
                                    ] if is_member else []
    window.network_client.leave_game_session = AsyncMock()
    window.network_client.connection_state.is_disconnected = False

    # Run
    await window._on_close_event(event)
    event.ignore.assert_not_called()
    super_close_event.assert_called_once_with(event)

    if is_member:
        window.network_client.leave_game_session.assert_awaited_once_with(
            False)
    else:
        window.network_client.leave_game_session.assert_not_awaited()
Exemple #6
0
def _window(skip_qtbot):
    game_connection = MagicMock()
    game_connection.backend.lock_identifier = None
    window = GameSessionWindow(MagicMock(), game_connection, MagicMock(),
                               MagicMock(), MagicMock())
    return window