curds: User node cleanups
- Use constants for the starred playlist icon and sort fields list - Don't keep a reference to the new and starred playlists, and allocate new instances after a reset() Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
1291adb48b
commit
65af043778
|
@ -1,7 +1,6 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import new
|
||||
from . import user
|
||||
from .. import notify
|
||||
from .. import trak
|
||||
from .. import tree
|
||||
import unittest
|
||||
|
@ -15,50 +14,32 @@ class TestUserPlaylists(unittest.TestCase):
|
|||
self.assertEqual(unode.icon, "audio-x-generic")
|
||||
|
||||
self.assertEqual(unode.n_children(), 2)
|
||||
self.assertEqual(unode.new, unode.nth_child(0))
|
||||
self.assertEqual(unode.starred, unode.nth_child(1))
|
||||
self.assertEqual(unode.nth_child(0).name, "New Tracks")
|
||||
self.assertEqual(unode.nth_child(1).name, "Starred")
|
||||
self.assertEqual(unode.nth_child(1).icon, user.STAR_ICON)
|
||||
|
||||
self.assertIsInstance(unode.new, new.NewPlaylist)
|
||||
self.assertIsInstance(unode.lookup("New Tracks"), new.NewPlaylist)
|
||||
|
||||
def test_user_reset(self):
|
||||
unode = user.UserNode()
|
||||
new = unode.new
|
||||
star = unode.starred
|
||||
new = unode.lookup("New Tracks")
|
||||
star = unode.lookup("Starred")
|
||||
|
||||
new.list.append(42)
|
||||
star.list.append(42)
|
||||
unode.reset()
|
||||
self.assertEqual(unode.n_children(), 2)
|
||||
|
||||
self.assertEqual(unode.nth_child(0), new)
|
||||
self.assertEqual(len(new), 0)
|
||||
self.assertIn(id(new), unode.child_ids)
|
||||
self.assertNotEqual(unode.nth_child(0), new)
|
||||
self.assertEqual(unode.nth_child(0).name, "New Tracks")
|
||||
|
||||
self.assertEqual(unode.nth_child(1), star)
|
||||
self.assertEqual(len(star), 0)
|
||||
self.assertIn(id(star), unode.child_ids)
|
||||
self.assertNotEqual(unode.nth_child(1), star)
|
||||
self.assertEqual(unode.nth_child(1).name, "Starred")
|
||||
self.assertEqual(unode.nth_child(1).icon, user.STAR_ICON)
|
||||
|
||||
def test_user_starred(self):
|
||||
unode = user.UserNode()
|
||||
star = unode.starred
|
||||
star = unode.lookup("Starred")
|
||||
|
||||
self.assertEqual(star.name, "Starred")
|
||||
self.assertEqual(star.icon, "starred")
|
||||
self.assertEqual(star.sort_order,
|
||||
[ "artist", "date", "album", "discnumber", "tracknumber" ])
|
||||
|
||||
def test_user_setstate(self):
|
||||
unode = user.UserNode()
|
||||
new = unode.new
|
||||
star = unode.starred
|
||||
state = { "name" : "Test", "icon" : "test", "children" : [ ],
|
||||
"sibling" : None, "parent" : None,
|
||||
"new" : new, "starred" : star }
|
||||
|
||||
unode.new = None
|
||||
unode.starred = None
|
||||
unode.__setstate__(state)
|
||||
self.assertEqual(unode.name, "Test")
|
||||
self.assertEqual(unode.icon, "test")
|
||||
self.assertEqual(unode.new, new)
|
||||
self.assertEqual(unode.starred, star)
|
||||
|
|
|
@ -3,23 +3,16 @@ from . import new
|
|||
from . import playlist
|
||||
from .. import tree
|
||||
|
||||
STAR_ICON = "starred"
|
||||
STAR_SORT = [ "artist", "date", "album", "discnumber", "tracknumber" ]
|
||||
|
||||
class UserNode(tree.ETree):
|
||||
def __init__(self):
|
||||
sort = [ "artist", "date", "album", "discnumber", "tracknumber" ]
|
||||
self.starred = playlist.Playlist("Starred", "starred", sort)
|
||||
self.new = new.NewPlaylist()
|
||||
tree.ETree.__init__(self, "Playlists", "audio-x-generic")
|
||||
self.insert_child(self.new)
|
||||
self.insert_child(self.starred)
|
||||
|
||||
def __setstate__(self, state):
|
||||
self.new = state["new"]
|
||||
self.starred = state["starred"]
|
||||
tree.ETree.__setstate__(self, state)
|
||||
self.insert_child(new.NewPlaylist())
|
||||
self.insert_child(playlist.Playlist("Starred", STAR_ICON, STAR_SORT))
|
||||
|
||||
def reset(self):
|
||||
tree.ETree.reset(self)
|
||||
self.new.reset()
|
||||
self.starred.reset()
|
||||
self.insert_child(self.new)
|
||||
self.insert_child(self.starred)
|
||||
self.insert_child(new.NewPlaylist())
|
||||
self.insert_child(playlist.Playlist("Starred", STAR_ICON, STAR_SORT))
|
||||
|
|
Loading…
Reference in New Issue