curds: Switch genre node over to the find_node() / alloc_node() interface

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-06-01 21:38:05 -04:00
parent aef622d39b
commit 7998a734e4
2 changed files with 13 additions and 6 deletions

View File

@ -8,13 +8,12 @@ class GenreNode(node.PlaylistNode):
node.PlaylistNode.__init__(self, "Genres", "emblem-generic")
notify.register("new-track", self.new_track)
def alloc_node(self, name):
return playlist.Playlist(name, self.icon,
[ "artist", "date", "album", "discnumber", "tracknumber" ])
def new_track(self, track):
plist = self.lookup(track["genre"])
if plist == None:
sort = [ "artist", "date", "album", "discnumber", "tracknumber" ]
plist = playlist.Playlist(track["genre"], self.icon, sort)
self.insert_child(plist)
plist.add(track)
self.find_node(track["genre"]).add(track)
def reset(self):
node.PlaylistNode.reset(self)

View File

@ -29,6 +29,14 @@ class TestGenrePlaylist(unittest.TestCase):
plist = gnode.nth_child(0)
self.assertEqual(plist.name, "Test Genre 1")
self.assertEqual(plist.icon, "emblem-generic")
self.assertEqual(plist[0], track)
def test_genre_alloc_node(self):
gnode = genre.GenreNode()
plist = gnode.alloc_node("Test Genre")
self.assertIsInstance(plist, playlist.Playlist)
self.assertEqual(plist.name, "Test Genre")
self.assertEqual(plist.icon, "emblem-generic")
self.assertEqual(plist.sort_order,
[ "artist", "date", "album", "discnumber", "tracknumber" ])