curds: Add a Placeholder() instance to the playlist manager
This isn't intended to hold playlists. Instead, it represents extra spacing between playlists for the UI. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
2cf0ad8df9
commit
cfbb6cfcd9
|
@ -23,7 +23,7 @@ class PlaylistManagerBase(list):
|
|||
|
||||
def index(self, plist):
|
||||
for (i, pl) in enumerate(self):
|
||||
if pl.name == plist.name: return i
|
||||
if id(pl) == id(plist): return i
|
||||
return None
|
||||
|
||||
def lookup(self, name, allocate=False):
|
||||
|
@ -67,11 +67,24 @@ class LibraryManager(PlaylistManagerBase):
|
|||
return os.path.abspath(path)
|
||||
|
||||
|
||||
class Placeholder(PlaylistManagerBase):
|
||||
def __init__(self):
|
||||
PlaylistManagerBase.__init__(self)
|
||||
|
||||
def __str__(self):
|
||||
return ""
|
||||
|
||||
def lookup(self, name, allocate=False):
|
||||
return None
|
||||
|
||||
|
||||
class PlaylistManager(PlaylistManagerBase):
|
||||
def __init__(self):
|
||||
self.append(collection.CollectionPlaylist())
|
||||
self.append(previous.PreviousPlaylist())
|
||||
self.append(Placeholder())
|
||||
self.append(GenreManager())
|
||||
self.append(Placeholder())
|
||||
self.append(LibraryManager())
|
||||
self.current = self.lookup("Collection")
|
||||
self.track = None
|
||||
|
|
|
@ -55,14 +55,22 @@ class TestPlaylistManager(unittest.TestCase):
|
|||
def test_manager_indexing(self):
|
||||
self.assertEqual( self.playman[0], self.playman.lookup("Collection"))
|
||||
self.assertEqual( self.playman[1], self.playman.lookup("Previous"))
|
||||
self.assertEqual( self.playman[2], self.playman.lookup("Genre"))
|
||||
self.assertEqual( self.playman[3], self.playman.lookup("Library"))
|
||||
self.assertIsInstance(self.playman[2], manager.Placeholder)
|
||||
self.assertEqual( self.playman[3], self.playman.lookup("Genre"))
|
||||
self.assertIsInstance(self.playman[4], manager.Placeholder)
|
||||
self.assertEqual( self.playman[5], self.playman.lookup("Library"))
|
||||
self.assertIsNone(self.playman[999])
|
||||
|
||||
self.assertEqual(self.playman.index(self.playman[0]), 0)
|
||||
self.assertEqual(self.playman.index(self.playman[1]), 1)
|
||||
self.assertEqual(self.playman.index(self.playman[2]), 2)
|
||||
self.assertEqual(self.playman.index(self.playman[3]), 3)
|
||||
for i in range(len(self.playman)):
|
||||
self.assertEqual(self.playman.index(self.playman[i]), i)
|
||||
|
||||
def test_manager_placeholders(self):
|
||||
place = manager.Placeholder()
|
||||
self.assertEqual(place.name, "")
|
||||
self.assertEqual(place.icon, "")
|
||||
self.assertEqual(str(place), "")
|
||||
self.assertIsNone(place.lookup("Test", allocate=True))
|
||||
self.assertEqual(len(place), 0)
|
||||
|
||||
def test_manager_library(self):
|
||||
plist = self.playman.lookup("Library").lookup(test_library + "/", allocate=True)
|
||||
|
|
Loading…
Reference in New Issue