import pytest from json import loads import pathlib import shutil pytestmark = pytest.mark.skip(reason="not yet implemented") from solo_tool.session_manager import loadSession, saveSession 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 def test_loadSession(prepared_tmp_path): soloTool = loadSession(prepared_tmp_path / "test_session.json") assert soloTool.songs == ["test.flac", "test.mp3"] soloTool.song = 0 assert soloTool.keyPositions == [] soloTool.song = 1 assert soloTool.keyPositions == [0.1, 0.3] def test_saveSession(prepared_tmp_path): soloTool = SoloTool() soloTool.addSong("test.flac") soloTool.addSong("test.mp3") soloTool.keyPositions = [0.1, 0.3] testFile = prepared_tmp_path / "test_session_saved.json" saveSession(soloTool, testFile) with open(testFile, "r") as f: savedSession = loads(f.read()) with open(prepared_tmp_path / "test_session.json", "r") as f: testSession = loads(f.read()) assert savedSession == testSession def test_loadAndSaveEmptySession(prepared_tmp_path): emptyFile = prepared_tmp_path / "empty_session.json" soloTool = SoloTool() saveSession(soloTool, emptyFile) reloadedTool = loadSession(emptyFile) assert reloadedTool.songs == []