curds: Add a next() function to the PlaylistManager

I'll eventually make this more complex when I add in more playlists, but
for now it just calls next on the Collection playlist

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-03-18 17:15:16 -04:00
parent 57b642265c
commit b642e762f7
2 changed files with 24 additions and 0 deletions

View File

@ -28,3 +28,9 @@ class PlaylistManager(dict):
def __init__(self):
self["Collection"] = collection.CollectionPlaylist()
self["Library"] = LibraryManager()
self.current = self["Collection"]
self.track = None
def next(self):
self.track = self.current.next()
return self.track

View File

@ -31,6 +31,9 @@ class TestPlaylistManager(unittest.TestCase):
self.assertIsInstance(playman["Library"], manager.LibraryManager)
self.assertIsInstance(playman["Library"], list)
self.assertEqual(playman.current, playman["Collection"])
self.assertEqual(playman.track, None)
def on_new_library(self, plist):
self.cb_plist = plist
@ -73,3 +76,18 @@ class TestPlaylistManager(unittest.TestCase):
self.assertEqual(len(plist), 1250)
self.assertEqual(len(alist), 12)
self.assertEqual(len(playman["Collection"]), len(alist) + len(plist))
def test_manager_next(self):
playman = manager.PlaylistManager()
self.assertIsNone(playman.next())
self.assertIsNone(playman.track)
clist = playman["Collection"]
plist = playman["Library"].add(test_library)
library.library_thread.join()
track = playman.next()
self.assertEqual(playman.track, track)
self.assertEqual(clist.current, 0)
self.assertEqual(track, clist[0])