curds: Add the Previous playlist to the playlist manager

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-03-23 13:43:40 -04:00
parent c794faf95c
commit 3afffc54d4
2 changed files with 27 additions and 4 deletions

View File

@ -1,6 +1,7 @@
# Copyright 2019 (c) Anna Schumaker.
from . import collection
from . import library
from . import previous
from .. import notify
import os
@ -27,10 +28,16 @@ class LibraryManager(list):
class PlaylistManager(dict):
def __init__(self):
self["Collection"] = collection.CollectionPlaylist()
self["Previous"] = previous.PreviousPlaylist()
self["Library"] = LibraryManager()
self.current = self["Collection"]
self.track = None
def next(self):
self.track = self.current.next()
self["Previous"].add(self.track)
return self.track
def previous(self):
self.track = self["Previous"].next()
return self.track

View File

@ -3,6 +3,7 @@ from . import collection
from . import library
from . import manager
from . import playlist
from . import previous
from .. import notify
from .. import tags
from .. import threadqueue
@ -28,6 +29,7 @@ class TestPlaylistManager(unittest.TestCase):
self.assertIsInstance(playman, manager.PlaylistManager)
self.assertIsInstance(playman, dict)
self.assertIsInstance(playman["Collection"], collection.CollectionPlaylist)
self.assertIsInstance(playman["Previous"], previous.PreviousPlaylist)
self.assertIsInstance(playman["Library"], manager.LibraryManager)
self.assertIsInstance(playman["Library"], list)
@ -77,17 +79,31 @@ class TestPlaylistManager(unittest.TestCase):
self.assertEqual(len(alist), 12)
self.assertEqual(len(playman["Collection"]), len(alist) + len(plist))
def test_manager_next(self):
def test_manager_next_prev(self):
playman = manager.PlaylistManager()
self.assertIsNone(playman.next())
self.assertIsNone(playman.track)
clist = playman["Collection"]
prev = playman["Previous"]
plist = playman["Library"].add(test_library)
library.library_thread.join()
track = playman.next()
self.assertEqual(playman.track, track)
track1 = playman.next()
self.assertEqual(playman.track, track1)
self.assertEqual(clist.current, 0)
self.assertEqual(track, clist[0])
self.assertEqual(track1, clist[0])
self.assertEqual(len(prev), 1)
self.assertEqual(prev[0], track1)
track2 = playman.next()
self.assertEqual(playman.track, track2)
self.assertEqual(clist.current, 1)
self.assertEqual(track2, clist[1])
self.assertEqual(len(prev), 2)
self.assertEqual(prev[0], track2)
self.assertEqual(prev[1], track1)
self.assertEqual(playman.previous(), track1)