diff options
| -rw-r--r-- | solo-tool-project/src/solo_tool/session_manager.py | 35 | ||||
| -rw-r--r-- | solo-tool-project/src/solo_tool/solo_tool.py | 1 | ||||
| -rw-r--r-- | solo-tool-project/test/session_manager_unittest.py | 9 | ||||
| -rw-r--r-- | 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]      }  ] | 
