curds: Create a LibraryNode
For managing library playlists Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
751ad812f3
commit
52f787e483
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import node
|
||||
from . import playlist
|
||||
from .. import notify
|
||||
from .. import tags
|
||||
|
@ -27,6 +28,23 @@ class LibraryPlaylist(playlist.Playlist):
|
|||
library_thread.push(self.thread_add, os.path.join(dirname, f))
|
||||
|
||||
|
||||
class LibraryNode(node.PlaylistNode):
|
||||
def __init__(self):
|
||||
node.PlaylistNode.__init__(self, "Libraries", "folder-music")
|
||||
|
||||
def __normalize__(self, name):
|
||||
if os.path.exists(name):
|
||||
return os.path.abspath(name)
|
||||
return node.PlaylistNode.__normalize__(self, name)
|
||||
|
||||
def lookup(self, path):
|
||||
plist = node.PlaylistNode.lookup(self, os.path.abspath(path))
|
||||
if plist == None:
|
||||
plist = LibraryPlaylist(path)
|
||||
self.insert_child(plist)
|
||||
return plist
|
||||
|
||||
|
||||
def join():
|
||||
library_thread.join()
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import library
|
||||
from . import node
|
||||
from . import playlist
|
||||
from .. import notify
|
||||
from .. import tags
|
||||
|
@ -37,3 +38,17 @@ class TestLibraryPlaylist(unittest.TestCase):
|
|||
plist.scan()
|
||||
library.join()
|
||||
self.assertEqual(len(plist), 1250)
|
||||
|
||||
def test_playlist_library_node(self):
|
||||
lnode = library.LibraryNode()
|
||||
self.assertIsInstance(lnode, node.PlaylistNode)
|
||||
self.assertEqual(lnode.name, "Libraries")
|
||||
self.assertEqual(lnode.icon, "folder-music")
|
||||
|
||||
plist = lnode.lookup(test_library + "/")
|
||||
self.assertEqual(plist.name, test_library)
|
||||
self.assertEqual(plist.icon, "folder-music")
|
||||
|
||||
self.assertEqual(lnode.lookup(test_library), plist)
|
||||
lnode.reset()
|
||||
self.assertEqual(lnode.children, [ ])
|
||||
|
|
Loading…
Reference in New Issue