53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
from lobby_widget import LobbyWidget
|
|
from PyQt6.QtCore import Qt
|
|
|
|
|
|
def test_session_selection_uses_existing_join_flow(qtbot):
|
|
lobby = LobbyWidget()
|
|
qtbot.addWidget(lobby)
|
|
assert lobby.listed_checkbox.isChecked()
|
|
rooms = [{"code": "ABC123", "fileInfo": {"name": "movie.mkv"},
|
|
"users": ["Host"], "playing": True, "position": 75}]
|
|
lobby.update_sessions(rooms)
|
|
lobby.sessions_list.setCurrentRow(0)
|
|
assert not lobby.session_join_btn.isEnabled()
|
|
lobby.username_input.setText("Alex")
|
|
assert lobby.session_join_btn.isEnabled()
|
|
with qtbot.waitSignal(lobby.join_requested) as signal:
|
|
lobby.join_selected_session()
|
|
assert signal.args == ["Alex", "ABC123"]
|
|
lobby.reset_ui()
|
|
lobby.update_sessions(rooms)
|
|
assert lobby.sessions_list.currentItem().data(256) == "ABC123"
|
|
lobby.update_sessions([])
|
|
assert not lobby.session_join_btn.isEnabled()
|
|
assert "No active sessions" in lobby.sessions_status.text()
|
|
|
|
|
|
def test_workspace_dialogs_and_connection_lock(qtbot, tmp_path):
|
|
lobby = LobbyWidget()
|
|
qtbot.addWidget(lobby)
|
|
lobby.show()
|
|
assert not lobby.create_action_btn.isEnabled()
|
|
lobby.username_input.setText("Alex")
|
|
qtbot.mouseClick(lobby.create_action_btn, Qt.MouseButton.LeftButton)
|
|
assert lobby.create_dialog.isVisible()
|
|
assert not lobby.create_room_btn.isEnabled()
|
|
video = tmp_path / "movie.mkv"
|
|
video.write_bytes(b"local video")
|
|
lobby._set_local_file(str(video))
|
|
lobby.listed_checkbox.setChecked(False)
|
|
with qtbot.waitSignal(lobby.create_requested) as signal:
|
|
qtbot.mouseClick(lobby.create_room_btn, Qt.MouseButton.LeftButton)
|
|
assert signal.args == ["Alex", str(video), "movie.mkv", 11]
|
|
assert not lobby.create_dialog.isVisible()
|
|
assert not lobby.create_action_btn.isEnabled()
|
|
assert not lobby.join_action_btn.isEnabled()
|
|
lobby.reset_ui()
|
|
qtbot.mouseClick(lobby.join_action_btn, Qt.MouseButton.LeftButton)
|
|
lobby.room_code_input.setText("abc123")
|
|
with qtbot.waitSignal(lobby.join_requested) as signal:
|
|
qtbot.keyClick(lobby.room_code_input, Qt.Key.Key_Return)
|
|
assert signal.args == ["Alex", "ABC123"]
|
|
assert not lobby.join_dialog.isVisible()
|