49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
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(VlcSyncApp, "refresh_sessions", lambda self: None)
|
|
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(VlcSyncApp, "refresh_sessions", lambda self: None)
|
|
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
|