aboutsummaryrefslogtreecommitdiffstats
path: root/session_manager_unittest.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2024-11-09 20:35:56 +0100
committerEddy Pedroni <epedroni@pm.me>2024-11-09 20:35:56 +0100
commitcda8197669409689be291660f93cb288ab2d31b3 (patch)
tree81db9b0c7c0491e0737cbffb39af6b935c0dfeb8 /session_manager_unittest.py
parenta2257a900d4fffd6f94b73f1c48c62370ed1d684 (diff)
Migrate to project-based structure
Diffstat (limited to 'session_manager_unittest.py')
-rw-r--r--session_manager_unittest.py163
1 files changed, 0 insertions, 163 deletions
diff --git a/session_manager_unittest.py b/session_manager_unittest.py
deleted file mode 100644
index 169aa17..0000000
--- a/session_manager_unittest.py
+++ /dev/null
@@ -1,163 +0,0 @@
-from session_manager import SessionManager
-from json import loads, dumps
-
-testSession = [
- {
- "path" : "/path/to/another/song",
- "ab_limits" : None
- },
- {
- "path" : "/path/to/song",
- "ab_limits" : [
- [0.1, 0.2],
- [0.3, 0.4]
- ]
- },
- {
- "path" : "/path/to/something",
- "ab_limits" : [
- [0.1, 0.2]
- ]
- }
-]
-
-class PlaylistMock:
- def __init__(self):
- self.lastAddedSong = None
- self.songs = list()
-
- def addSong(self, s):
- self.songs.append(s)
- self.lastAddedSong = s
-
- def getSongs(self):
- return self.songs
-
- def clear(self):
- self.__init__()
-
-class ABControllerMock:
- def __init__(self):
- self.limits = dict()
-
- def storeLimits(self, aLimit, bLimit, song="current"):
- if song not in self.limits:
- self.limits[song] = list()
- self.limits[song].append([aLimit, bLimit])
-
- def getStoredLimits(self, song):
- return self.limits.get(song)
-
- def clear(self):
- self.__init__()
-
-class MockFile:
- def __init__(self, init=""):
- self.contents = init
-
- def open(self, *args):
- pass
-
- def write(self, s):
- self.contents += s
-
- def read(self):
- return self.contents
-
-
-def test_addSongs():
- songs = [
- "/path/to/song",
- "/path/to/another/song"
- ]
-
- playlistMock = PlaylistMock()
- uut = SessionManager(playlistMock, None)
-
- for s in songs:
- uut.addSong(s)
- assert playlistMock.lastAddedSong == s
-
-def test_addAbLimits():
- abLimits = [
- [0.1, 0.2],
- [0.3, 0.4]
- ]
-
- abControllerMock = ABControllerMock()
- uut = SessionManager(None, abControllerMock)
-
- for i, ab in enumerate(abLimits):
- uut.storeLimits(ab[0], ab[1])
- assert abControllerMock.limits["current"][i] == ab
-
-def test_loadSession():
- playlistMock = PlaylistMock()
- abControllerMock = ABControllerMock()
- uut = SessionManager(playlistMock, abControllerMock)
-
- sessionFile = MockFile(dumps(testSession))
- uut.loadSession(sessionFile)
-
- for i, entry in enumerate(testSession):
- expectedSong = entry["path"]
- expectedLimits = entry["ab_limits"]
- loadedSong = playlistMock.songs[i]
- loadedLimits = abControllerMock.limits.get(expectedSong)
-
- assert loadedSong == expectedSong
- assert loadedLimits == expectedLimits
-
-def test_saveSession():
- playlistMock = PlaylistMock()
- abControllerMock = ABControllerMock()
- uut = SessionManager(playlistMock, abControllerMock)
-
- for i, entry in enumerate(testSession):
- song = entry["path"]
- playlistMock.addSong(song)
-
- abLimits = entry["ab_limits"]
- if abLimits is not None:
- for l in abLimits:
- abControllerMock.storeLimits(l[0], l[1], song)
-
- sessionFile = MockFile()
- uut.saveSession(sessionFile)
-
- savedSession = loads(sessionFile.read())
- assert savedSession == testSession
-
-def test_loadAndSaveEmptySession():
- playlistMock = PlaylistMock()
- abControllerMock = ABControllerMock()
- uut = SessionManager(playlistMock, abControllerMock)
-
- sessionFile = MockFile()
-
- uut.saveSession(sessionFile)
- assert loads(sessionFile.read()) == list()
-
- uut.loadSession(sessionFile)
-
- songs = playlistMock.getSongs()
- assert songs == list()
- for s in songs:
- assert abControllerMock.getStoredLimits(s) == None
-
-def test_loadSessionNotAdditive():
- playlistMock = PlaylistMock()
- abControllerMock = ABControllerMock()
- uut = SessionManager(playlistMock, abControllerMock)
-
- sessionFile = MockFile(dumps(testSession))
- uut.loadSession(sessionFile)
- uut.loadSession(sessionFile)
-
- songs = playlistMock.getSongs()
- assert len(songs) == len(set(songs))
- for s in songs:
- abLimits = abControllerMock.getStoredLimits(s)
- if abLimits is not None:
- abLimitStr = [f"[{l[0]}, {l[1]}] " for l in abLimits]
- assert len(abLimitStr) == len(set(abLimitStr))