From fd05e8a3a53afae850f539a348e209c4770ec430 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Sun, 23 Feb 2025 09:29:03 +0100 Subject: Session manager tests passing --- solo-tool-project/src/solo_tool/session_manager.py | 35 +++++++++++----------- solo-tool-project/src/solo_tool/solo_tool.py | 1 - solo-tool-project/test/session_manager_unittest.py | 9 +++--- solo-tool-project/test/test_session.json | 4 +-- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/solo-tool-project/src/solo_tool/session_manager.py b/solo-tool-project/src/solo_tool/session_manager.py index a4dabc0..9744b57 100644 --- a/solo-tool-project/src/solo_tool/session_manager.py +++ b/solo-tool-project/src/solo_tool/session_manager.py @@ -1,29 +1,30 @@ import json +from . import SoloTool -def loadSession(file, songList, abController): - jsonStr = file.read() - session = json.loads(jsonStr) +def loadSession(file: str) -> SoloTool: + with open(file, "r") as f: + session = json.load(f) - songList.clear() - abController.clear() + st = SoloTool() - for entry in session: + for i, entry in enumerate(session): songPath = entry["path"] - abLimits = entry["ab_limits"] - songList.append(songPath) + keyPoints = entry["key_points"] - if abLimits is not None: - for l in abLimits: - abController.storeLimits(l[0], l[1], songPath) + st.addSong(songPath) + st._keyPoints[i] = keyPoints + + return st -def saveSession(file, songList, abController): - session = list() +def saveSession(soloTool: SoloTool, file: str) -> None: + session = [] - for s in songList: + for i, song in enumerate(soloTool.songs): entry = { - "path": s, - "ab_limits" : abController.getStoredLimits(s) + "path": song, + "key_points" : soloTool._keyPoints[i] } session.append(entry) - file.write(json.dumps(session)) + with open(file, "w") as f: + json.dump(session, f) diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py index 97c3495..147a7b9 100644 --- a/solo-tool-project/src/solo_tool/solo_tool.py +++ b/solo-tool-project/src/solo_tool/solo_tool.py @@ -1,6 +1,5 @@ import os -from .session_manager import loadSession, saveSession from .notifier import Notifier from .player_vlc import Player diff --git a/solo-tool-project/test/session_manager_unittest.py b/solo-tool-project/test/session_manager_unittest.py index 0edc252..8658032 100644 --- a/solo-tool-project/test/session_manager_unittest.py +++ b/solo-tool-project/test/session_manager_unittest.py @@ -3,8 +3,6 @@ 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 @@ -25,16 +23,17 @@ def test_loadSession(prepared_tmp_path): assert soloTool.songs == ["test.flac", "test.mp3"] soloTool.song = 0 - assert soloTool.keyPositions == [] + assert soloTool.keyPoints == [] soloTool.song = 1 - assert soloTool.keyPositions == [0.1, 0.3] + assert soloTool.keyPoints == [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] + soloTool.song = 1 + soloTool.keyPoints = [0.1, 0.3] testFile = prepared_tmp_path / "test_session_saved.json" saveSession(soloTool, testFile) diff --git a/solo-tool-project/test/test_session.json b/solo-tool-project/test/test_session.json index aed1e11..49c2d42 100644 --- a/solo-tool-project/test/test_session.json +++ b/solo-tool-project/test/test_session.json @@ -1,10 +1,10 @@ [ { "path" : "test.flac", - "key_positions" : null + "key_points" : [] }, { "path" : "test.mp3", - "key_positions" : [0.1, 0.3] + "key_points" : [0.1, 0.3] } ] -- cgit v1.2.3