curds: Swap out the GenreManager for the GenreNode

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-04-17 11:04:29 -04:00
parent 8769423fe8
commit b37a36369f
3 changed files with 28 additions and 74 deletions

View File

@ -50,20 +50,6 @@ class PlaylistManagerBase(list):
self.clear()
class GenreManager(PlaylistManagerBase):
def __init__(self):
PlaylistManagerBase.__init__(self, "Genre", "audio-x-generic-symbolic",
genre.GenrePlaylist)
notify.register("new-track", self.add_track)
def add_track(self, track):
self.lookup(track["genre"], allocate=True).add(track)
def reset(self):
PlaylistManagerBase.reset(self)
notify.register("new-track", self.add_track)
class Placeholder(PlaylistManagerBase):
def __init__(self):
PlaylistManagerBase.__init__(self)
@ -80,7 +66,7 @@ class PlaylistManager(PlaylistManagerBase):
self.append(collection.CollectionPlaylist())
self.append(previous.PreviousPlaylist())
self.append(Placeholder())
self.append(GenreManager())
self.append(genre.GenreNode())
self.append(library.LibraryNode())
self.current = [ self.lookup("Collection") ]
self.track = None
@ -129,9 +115,7 @@ class PlaylistManager(PlaylistManagerBase):
def parent(self, child):
parent = self
if isinstance(child, genre.GenrePlaylist):
parent = self.lookup("Genre")
elif isinstance(child, library.LibraryPlaylist):
if child and child.parent:
return child.parent
return parent if child in parent else None

View File

@ -33,7 +33,7 @@ class TestPlaylistManager(unittest.TestCase):
def tearDown(self):
notify.cancel("new-track", self.playman.lookup("Collection").add)
notify.cancel("new-track", self.playman.lookup("Genre").add_track)
notify.cancel("new-track", self.playman.lookup("Genres").new_track)
notify.cancel("new-playlist", self.on_new_playlist)
notify.register("playlist-changed", self.on_playlist_changed)
library.stop()
@ -50,14 +50,11 @@ class TestPlaylistManager(unittest.TestCase):
self.assertIsInstance(self.playman, manager.PlaylistManager)
self.assertIsInstance(self.playman, manager.PlaylistManagerBase)
self.assertIsInstance(self.playman, list)
self.assertIsInstance(self.playman.lookup("Collection"), collection.CollectionPlaylist)
self.assertIsInstance(self.playman.lookup("Previous"), previous.PreviousPlaylist)
self.assertIsInstance(self.playman.lookup("Genre"), manager.GenreManager)
self.assertIsInstance(self.playman.lookup("Genre"), manager.PlaylistManagerBase)
self.assertIsInstance(self.playman.lookup("Genre"), list)
self.assertIsInstance(self.playman.lookup("Libraries"), library.LibraryNode)
self.assertIsInstance(self.playman.lookup("Genres"), genre.GenreNode)
self.assertIsInstance(self.playman.lookup("Libraries"), library.LibraryNode)
self.assertEqual(self.playman.current, [ self.playman.lookup("Collection") ])
self.assertEqual(self.playman.track, None)
@ -68,7 +65,7 @@ class TestPlaylistManager(unittest.TestCase):
self.assertEqual( self.playman[0], self.playman.lookup("Collection"))
self.assertEqual( self.playman[1], self.playman.lookup("Previous"))
self.assertIsInstance(self.playman[2], manager.Placeholder)
self.assertEqual( self.playman[3], self.playman.lookup("Genre"))
self.assertEqual( self.playman[3], self.playman.lookup("Genres"))
self.assertEqual( self.playman[4], self.playman.lookup("Libraries"))
self.assertIsNone(self.playman[999])
@ -84,33 +81,6 @@ class TestPlaylistManager(unittest.TestCase):
self.assertIsNone(place.lookup("Test", allocate=True))
self.assertEqual(len(place), 0)
def test_manager_genre(self):
genreman = self.playman.lookup("Genre")
self.assertEqual(str(genreman), "<big>Genre</big>")
self.assertEqual(genreman.name, "Genre")
self.assertEqual(genreman.icon, "audio-x-generic-symbolic")
self.playman.lookup("Libraries").lookup(test_library)
library.join()
plist = genreman.lookup("Test Genre 1")
self.assertIsInstance(plist, genre.GenrePlaylist)
self.assertEqual(plist.name, "Test Genre 1")
self.assertEqual(plist.icon, "audio-x-generic-symbolic")
self.assertEqual(len(genreman), 5)
parent = self.playman.parent(plist)
self.assertEqual(parent, genreman)
parent = self.playman.parent(genre.GenrePlaylist("Other"))
self.assertEqual(parent, None)
parent = self.playman.parent(genreman)
self.assertEqual(parent, self.playman)
notify.cancel("new-track", genreman.add_track)
self.playman.reset()
self.assertEqual(len(genreman), 0)
self.assertIn((genreman.add_track, False), notify.registered["new-track"])
def test_manager_on_scan(self):
plist = self.playman.lookup("Libraries").lookup(test_library)
alist = self.playman.lookup("Libraries").lookup(test_album)
@ -184,7 +154,7 @@ class TestPlaylistManager(unittest.TestCase):
clist = self.playman.lookup("Collection")
plist = self.playman.lookup("Libraries").lookup(test_library)
library.join()
glist = self.playman.lookup("Genre").lookup("Test Genre 1")
glist = self.playman.lookup("Genres").lookup("Test Genre 1")
self.assertEqual(self.playman.current, [ clist ])

View File

@ -19,7 +19,7 @@ class TestManager(unittest.TestCase):
curds.notify.register("new-playlist", manager.MgrModel.on_new_playlist, queue=True)
self.model = manager.ManagerModel()
self.genre = curds.PlaylistManager.lookup("Genre")
self.genre = curds.PlaylistManager.lookup("Genres")
curds.Track.lookup(os.path.join(test_album1, "01 - Test Track 01.ogg"))
curds.Track.lookup(os.path.join(test_album2, "01 - Test Track 01.ogg"))
@ -62,7 +62,7 @@ class TestManager(unittest.TestCase):
self.assertRaises(ValueError, self.model.get_iter, path)
idx = plist_mgr.index(self.genre)
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
path = Gtk.TreePath.new_from_indices([ idx, i ])
iter = self.model.get_iter(path)
self.assertTreeIterEqual(iter, (idx + 1, i + 1, 0))
@ -76,7 +76,7 @@ class TestManager(unittest.TestCase):
self.assertEqual(path.get_indices(), [ i ])
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
iter.user_data2 = i + 1
path = self.model.get_path(iter)
self.assertEqual(path.get_indices(), [ iter.user_data - 1, i ])
@ -105,7 +105,7 @@ class TestManager(unittest.TestCase):
child = self.model.iter_children(iter)
self.assertTreeIterEqual(child, (iter.user_data, 1, 0))
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
child.user_data2 = i + 1
self.assertIsNone(self.model.iter_children(child))
@ -118,7 +118,7 @@ class TestManager(unittest.TestCase):
self.assertEqual(self.model.iter_has_child(iter), expected)
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre) + 1):
for i in range(self.genre.n_children() + 1):
iter.user_data2 = i + 1
self.assertFalse(self.model.iter_has_child(iter))
@ -132,7 +132,7 @@ class TestManager(unittest.TestCase):
self.assertEqual(self.model.iter_n_children(iter), n)
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre) + 1):
for i in range(self.genre.n_children() + 1):
iter.user_data2 = i + 1
self.assertEqual(self.model.iter_n_children(iter), 0)
@ -145,7 +145,7 @@ class TestManager(unittest.TestCase):
self.assertIsNone(self.model.iter_nth_child(None, len(plist_mgr)))
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
child = self.model.iter_nth_child(iter, i)
self.assertTreeIterEqual(child, (iter.user_data, i + 1, 0))
self.assertIsNone(self.model.iter_nth_child(iter, i + 1))
@ -159,7 +159,7 @@ class TestManager(unittest.TestCase):
iter = self.model.playlist_iter(self.genre)
child = self.model.iter_children(iter)
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
self.assertTreeIterEqual(child, (iter.user_data, i + 1, 0))
child = self.model.iter_next(child)
self.assertIsNone(child)
@ -172,7 +172,7 @@ class TestManager(unittest.TestCase):
iter = self.model.playlist_iter(self.genre)
iter = self.model.iter_children(iter)
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
parent = self.model.iter_parent(iter)
self.assertTreeIterEqual(parent, (iter.user_data, 0, 0))
iter = self.model.iter_next(iter)
@ -186,7 +186,7 @@ class TestManager(unittest.TestCase):
iter = self.model.playlist_iter(self.genre)
iter = self.model.iter_nth_child(iter, 1)
for i in range(len(self.genre) - 1, -1, -1):
for i in range(self.genre.n_children() - 1, -1, -1):
self.assertTreeIterEqual(iter, (iter.user_data, i + 1, 0))
iter = self.model.iter_previous(iter)
self.assertIsNone(iter)
@ -205,13 +205,13 @@ class TestManager(unittest.TestCase):
iter.user_data2 = 1
for i in range(len(plist_mgr) + 1):
iter.user_data = i + 1
expected = self.genre[0] if plist_mgr[i] == self.genre else None
expected = self.genre.nth_child(0) if plist_mgr[i] == self.genre else None
self.assertEqual(self.model.iter_playlist(iter), expected)
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre) + 1):
for i in range(self.genre.n_children() + 1):
iter.user_data2 = i + 1
expected = self.genre[i] if i < len(self.genre) else None
expected = self.genre.nth_child(i) if i < self.genre.n_children() else None
self.assertEqual(self.model.iter_playlist(iter), expected)
def test_model_iter_valid(self):
@ -231,8 +231,8 @@ class TestManager(unittest.TestCase):
self.assertTreeIterEqual(iter, (i + 1, 0, 0))
iter = self.model.playlist_iter(self.genre)
for i in range(len(self.genre)):
child = self.model.playlist_iter(self.genre[i])
for i in range(self.genre.n_children()):
child = self.model.playlist_iter(self.genre.nth_child(i))
self.assertTreeIterEqual(child, (iter.user_data, i + 1, 0))
def test_manager_selection(self):
@ -254,12 +254,12 @@ class TestManager(unittest.TestCase):
def test_manager_activate(self):
column = manager.Treeview.get_column(1)
filter = self.model.filter
child = self.model.playlist_iter(self.genre[0])
child = self.model.playlist_iter(self.genre.nth_child(0))
(res, iter) = filter.convert_child_iter_to_iter(child)
path = filter.get_path(iter)
manager.Treeview.row_activated(path, column)
self.assertEqual(plist_mgr.current[0], self.genre[0])
self.assertEqual(plist_mgr.current[0], self.genre.nth_child(0))
for i in range(3):
path = Gtk.TreePath(i)
@ -283,9 +283,9 @@ class TestManager(unittest.TestCase):
if plist_mgr[i] != self.genre:
self.assertIsNone(filter.iter_nth_child(iter, 0))
else:
for i in range(len(self.genre)):
for i in range(self.genre.n_children()):
child = filter.iter_nth_child(iter, i)
self.assertEqual(filter.get_value(child, 1), str(self.genre[i]))
self.assertEqual(filter.get_value(child, 1), str(self.genre.nth_child(i)))
entry.set_text("*v")
self.model.set_filter_text(entry)
@ -308,7 +308,7 @@ class TestManager(unittest.TestCase):
if plist_mgr[i] != self.genre:
self.assertIsNone(child)
else:
self.assertEqual(filter.get_value(child, 1), str(self.genre[1]))
self.assertEqual(filter.get_value(child, 1), str(self.genre.nth_child(1)))
entry.set_text("")
self.model.set_filter_text(entry)