Persist desktop client preferences
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
from unittest.mock import Mock
|
||||
|
||||
from PyQt6.QtCore import QSettings
|
||||
|
||||
import room_widget
|
||||
from main import VlcSyncApp
|
||||
from test_chat import PlayerSignals
|
||||
|
||||
|
||||
def test_preferences_survive_restart(qtbot, monkeypatch, tmp_path):
|
||||
monkeypatch.setattr(room_widget, "VLCSyncPlayer",
|
||||
lambda frame: Mock(signals=PlayerSignals()))
|
||||
path = str(tmp_path / "preferences.ini")
|
||||
settings = QSettings(path, QSettings.Format.IniFormat)
|
||||
first = VlcSyncApp(settings)
|
||||
qtbot.addWidget(first)
|
||||
first.show()
|
||||
first.lobby_widget.username_input.setText("Alex")
|
||||
first.room_widget.volume_slider.setValue(37)
|
||||
first._remember_media_folder(str(tmp_path / "movie.mkv"))
|
||||
first.room_widget.chat_container.hide()
|
||||
first.room_widget.tags_list.hide()
|
||||
first.resize(900, 650)
|
||||
first.close()
|
||||
|
||||
second = VlcSyncApp(QSettings(path, QSettings.Format.IniFormat))
|
||||
qtbot.addWidget(second)
|
||||
assert second.lobby_widget.username_input.text() == "Alex"
|
||||
assert second.room_widget.volume_slider.value() == 37
|
||||
assert second.lobby_widget.media_folder == str(tmp_path)
|
||||
assert second.room_widget.chat_container.isHidden()
|
||||
assert second.room_widget.tags_list.isHidden()
|
||||
assert second.size() == first.size()
|
||||
assert second.sync_client.url == "wss://video-sync.peterstockings.com/ws"
|
||||
|
||||
|
||||
def test_missing_folder_and_volume_bounds(qtbot, monkeypatch, tmp_path):
|
||||
monkeypatch.setattr(room_widget, "VLCSyncPlayer",
|
||||
lambda frame: Mock(signals=PlayerSignals()))
|
||||
settings = QSettings(str(tmp_path / "preferences.ini"), QSettings.Format.IniFormat)
|
||||
settings.setValue("media_folder", str(tmp_path / "missing"))
|
||||
settings.setValue("volume", 200)
|
||||
window = VlcSyncApp(settings)
|
||||
qtbot.addWidget(window)
|
||||
assert window.lobby_widget.media_folder == ""
|
||||
assert window.room_widget.volume_slider.value() == 100
|
||||
Reference in New Issue
Block a user