curds: Add Album playlists
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
e3e51ee899
commit
c7d45754a0
|
@ -3,6 +3,17 @@ from . import node
|
|||
from . import playlist
|
||||
from .. import notify
|
||||
|
||||
|
||||
class ArtistPlaylist(playlist.Playlist):
|
||||
def add(self, track):
|
||||
playlist.Playlist.add(self, track)
|
||||
alist = self.lookup(track["album"])
|
||||
if alist == None:
|
||||
alist = playlist.Playlist(track["album"], "media-optical-cd-audio")
|
||||
self.insert_child(alist)
|
||||
alist.add(track)
|
||||
|
||||
|
||||
class ArtistNode(node.PlaylistNode):
|
||||
def __init__(self):
|
||||
node.PlaylistNode.__init__(self, "Artists", "avatar-default-symbolic")
|
||||
|
@ -11,7 +22,7 @@ class ArtistNode(node.PlaylistNode):
|
|||
def new_track(self, track):
|
||||
plist = self.lookup(track["albumartist"])
|
||||
if plist == None:
|
||||
plist = playlist.Playlist(track["albumartist"], self.icon)
|
||||
plist = ArtistPlaylist(track["albumartist"], self.icon)
|
||||
self.insert_child(plist)
|
||||
plist.add(track)
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import unittest
|
|||
test_library = os.path.abspath("./trier/Test Library")
|
||||
test_album = os.path.join("Test Album 1", "01 - Test Track 01.ogg")
|
||||
test_album2 = os.path.join("Test Album 2", "01 - Test Track 01.ogg")
|
||||
test_album3 = os.path.join("Test Album 2", "02 - Test Track 02.ogg")
|
||||
|
||||
class TestArtistPlaylist(unittest.TestCase):
|
||||
def test_artist_node(self):
|
||||
|
@ -29,6 +30,13 @@ class TestArtistPlaylist(unittest.TestCase):
|
|||
self.assertEqual(len(plist), 1)
|
||||
self.assertEqual(plist[0], track1)
|
||||
|
||||
self.assertEqual(plist.n_children(), 1)
|
||||
alist = plist.nth_child(0)
|
||||
self.assertEqual(alist.name, "Test Album 1")
|
||||
self.assertEqual(alist.icon, "media-optical-cd-audio")
|
||||
self.assertEqual(len(alist), 1)
|
||||
self.assertEqual(alist[0], track1)
|
||||
|
||||
|
||||
track2 = tags.Track.lookup(os.path.join(test_library, "Test Artist 02", test_album))
|
||||
self.assertEqual(anode.n_children(), 2)
|
||||
|
@ -39,8 +47,10 @@ class TestArtistPlaylist(unittest.TestCase):
|
|||
|
||||
|
||||
track3 = tags.Track.lookup(os.path.join(test_library, "Test Artist 02", test_album2))
|
||||
track4 = tags.Track.lookup(os.path.join(test_library, "Test Artist 02", test_album3))
|
||||
self.assertEqual(anode.n_children(), 2)
|
||||
self.assertEqual(len(plist), 2)
|
||||
self.assertEqual(plist.n_children(), 2)
|
||||
self.assertEqual(len(plist), 3)
|
||||
|
||||
notify.cancel("new-track", anode.new_track)
|
||||
anode.reset()
|
||||
|
|
Loading…
Reference in New Issue