From eaec524a233c9ee11023f21d430bcbc2f4d5a17e Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Sat, 22 Feb 2025 08:17:29 +0100 Subject: Moved nextSong and previousSong to SoloToolController --- .../test/solo_tool_controller_integrationtest.py | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 solo-tool-project/test/solo_tool_controller_integrationtest.py (limited to 'solo-tool-project/test/solo_tool_controller_integrationtest.py') diff --git a/solo-tool-project/test/solo_tool_controller_integrationtest.py b/solo-tool-project/test/solo_tool_controller_integrationtest.py new file mode 100644 index 0000000..c161c70 --- /dev/null +++ b/solo-tool-project/test/solo_tool_controller_integrationtest.py @@ -0,0 +1,86 @@ +import pathlib +import shutil +import pytest + +from solo_tool.solo_tool_controller import SoloToolController +from solo_tool.solo_tool import SoloTool + +@pytest.fixture +def prepared_tmp_path(tmp_path): + testFiles = [ + "test.flac", + "test.mp3", + "test_session.json" + ] + for f in testFiles: + shutil.copy(pathlib.Path(f), tmp_path) + return tmp_path + +@pytest.fixture +def soloTool(prepared_tmp_path): + st = SoloTool() + st.loadSession(prepared_tmp_path / "test_session.json") + return st + +@pytest.fixture +def uut(soloTool): + return SoloToolController(soloTool) + +def test_previousSong(uut, soloTool): + called = False + receivedValue = None + def callback(value): + nonlocal called, receivedValue + called = True + receivedValue = value + + soloTool.registerCurrentSongCallback(callback) + + soloTool.getCurrentSong() == None + assert not called + + uut.previousSong() + soloTool.getCurrentSong() == 0 + assert called + assert receivedValue == 0 + called = False + + uut.previousSong() + soloTool.getCurrentSong() == 0 + assert not called + + soloTool.setSong(1) + uut.previousSong() + soloTool.getCurrentSong() == 0 + assert called + assert receivedValue == 0 + called = False + +def test_nextSong(uut, soloTool): + called = False + receivedValue = None + def callback(value): + nonlocal called, receivedValue + called = True + receivedValue = value + + soloTool.registerCurrentSongCallback(callback) + + soloTool.getCurrentSong() == None + assert not called + + uut.nextSong() + soloTool.getCurrentSong() == 0 + assert called + assert receivedValue == 0 + called = False + + uut.nextSong() + soloTool.getCurrentSong() == 1 + assert called + assert receivedValue == 1 + called = False + + uut.nextSong() + soloTool.getCurrentSong() == 1 + assert not called -- cgit v1.2.3