rind: Clean up playlist manager tests

I simplify most of the code and make it easier to add more playlists in
the future.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-03-29 10:15:01 -04:00
parent 2c078a3d21
commit faaf640bea
1 changed files with 47 additions and 66 deletions

View File

@ -10,9 +10,11 @@ from gi.repository import Gtk, GObject, GLib
plist_mgr = curds.PlaylistManager
test_album1 = os.path.abspath("./trier/Test Library/Test Artist 02/Test Album 1")
test_album2 = os.path.abspath("./trier/Test Library/Test Artist 02/Test Album 2")
toplevel_names = [ "Collection\n0 Tracks", "Previous\n0 Tracks", "", "<big>Library</big>" ]
toplevel_icons = [ "media-playback-start", "edit-undo", "", "folder" ]
toplevel_plist = [ plist_mgr["Collection"], plist_mgr["Previous"], None, plist_mgr["Library"] ]
toplevel = [ ("media-playback-start", "Collection\n0 Tracks", plist_mgr["Collection"]),
("edit-undo", "Previous\n0 Tracks", plist_mgr["Previous"]),
("", "", None),
("folder-music", "<big>Library</big>", plist_mgr["Library"]) ]
class TestManager(unittest.TestCase):
def setUp(self):
@ -42,50 +44,43 @@ class TestManager(unittest.TestCase):
path = Gtk.TreePath(0)
iter = model.get_iter(path)
self.assertEqual(model.iter_n_children(None), 4)
self.assertEqual(model.iter_n_children(None), len(toplevel))
self.assertIsNone(model.find_playlist(None))
self.assertEqual(iter.user_data, 1)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertFalse(model.iter_has_child(iter))
self.assertEqual(model.iter_n_children(iter), 0)
self.assertEqual(model.iter_playlist(iter), plist_mgr["Collection"])
self.assertEqual(model.get_value(iter, 0), toplevel_icons[0])
self.assertEqual(model.get_value(iter, 1), toplevel_names[0])
track = curds.Track.lookup(os.path.join(test_album1, "01 - Test Track 01.ogg"))
self.assertEqual(model.get_value(iter, 1), "Collection\n1 Track")
track = curds.Track.lookup(os.path.join(test_album1, "02 - Test Track 02.ogg"))
self.assertEqual(model.get_value(iter, 1), "Collection\n2 Tracks")
for i in range(1, 3):
iter = model.iter_next(iter)
for i in range(0, len(toplevel)):
path = model.get_path(iter)
self.assertEqual(iter.user_data, i + 1)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertEqual(path.get_indices(), [ i ])
self.assertFalse(model.iter_has_child(iter))
self.assertEqual(model.iter_n_children(iter), 0)
self.assertEqual(model.iter_playlist(iter), toplevel_plist[i])
self.assertEqual(model.get_value(iter, 0), toplevel_icons[i])
self.assertEqual(model.get_value(iter, 1), toplevel_names[i])
self.assertEqual(model.get_value(iter, 0), toplevel[i][0])
self.assertEqual(model.get_value(iter, 1), toplevel[i][1])
self.assertEqual(model.iter_playlist(iter), toplevel[i][2])
self.assertIsNone(model.iter_parent(iter))
iter = model.iter_nth_child(None, 2)
self.assertEqual(iter.user_data, 3)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
if toplevel[i][2] != None:
piter = model.find_playlist(toplevel[i][2])
self.assertEqual(model.get_path(piter).get_indices(), [ i ])
piter = model.iter_nth_child(None, i)
self.assertEqual(model.get_path(piter).get_indices(), [ i ])
iter = model.iter_next(iter)
iter = model.find_playlist(plist_mgr["Collection"])
self.assertEqual(iter.user_data, 1)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertIsNone(model.find_playlist(None))
iter = model.find_playlist(curds.PlaylistManager["Collection"])
track = curds.Track.lookup(os.path.join(test_album1, "01 - Test Track 01.ogg"))
self.assertEqual(model.get_value(iter, 1), "Collection\n1 Track")
track = curds.Track.lookup(os.path.join(test_album1, "02 - Test Track 02.ogg"))
self.assertEqual(model.get_value(iter, 1), "Collection\n2 Tracks")
def test_model_library(self):
model = manager.ManagerModel()
iter = model.find_playlist(plist_mgr["Library"])
index = manager.toplevel.index("Library") + 1
self.assertEqual(iter.user_data, 4)
self.assertEqual(index, len(toplevel))
self.assertEqual(iter.user_data, index)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertFalse(model.iter_has_child(iter))
@ -100,38 +95,29 @@ class TestManager(unittest.TestCase):
curds.playlist.library.join()
self.assertEqual(model.iter_n_children(iter), 2)
plist = [ plist1, plist2 ]
child = model.iter_children(iter)
self.assertEqual(child.user_data, 4)
self.assertEqual(child.user_data2, 1)
self.assertEqual(child.user_data3, 0)
self.assertEqual(model.get_path(child).get_indices(), [ 3, 0 ])
for i in [ 1, 2 ]:
self.assertEqual(child.user_data, index)
self.assertEqual(child.user_data2, i)
self.assertEqual(child.user_data3, 0)
self.assertEqual(model.get_path(child).get_indices(),
[ index - 1, i - 1 ])
child = model.iter_next(child)
self.assertEqual(child.user_data, 4)
self.assertEqual(child.user_data2, 2)
self.assertEqual(child.user_data3, 0)
self.assertEqual(model.get_path(child).get_indices(), [ 3, 1 ])
self.assertEqual(model.iter_playlist(child), plist[i-1])
self.assertEqual(model.get_value(child, 0), "folder-music")
self.assertEqual(model.get_value(child, 1), f"{plist[i-1].name}\n10 Tracks")
child = model.find_playlist(plist2)
path = model.get_path(child)
self.assertEqual(child.user_data, 4)
self.assertEqual(child.user_data2, 2)
self.assertEqual(child.user_data3, 0)
self.assertEqual(model.iter_playlist(child), plist2)
self.assertEqual(path.get_indices(), [ 3, 1 ])
citer = model.get_iter(path)
self.assertEqual(citer.user_data, 4)
self.assertEqual(citer.user_data2, 2)
self.assertEqual(citer.user_data3, 0)
piter = model.find_playlist(plist[i-1])
self.assertEqual(piter.user_data, index)
self.assertEqual(piter.user_data2, i)
self.assertEqual(piter.user_data3, 0)
iter = model.iter_parent(child)
self.assertEqual(iter.user_data, 4)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
curds.playlist.library.join()
self.assertEqual(model.get_value(child, 0), "folder-music")
self.assertEqual(model.get_value(child, 1), f"{test_album2}\n10 Tracks")
parent = model.iter_parent(child)
self.assertEqual(parent.user_data, index)
self.assertEqual(parent.user_data2, 0)
self.assertEqual(parent.user_data3, 0)
if i == 1: child = model.iter_next(child)
def test_manager_selection(self):
selection = manager.Treeview.get_selection()
@ -159,12 +145,7 @@ class TestManager(unittest.TestCase):
self.assertFalse(selection.path_is_selected(path))
self.assertEqual(playlist.PlistModel.playlist, plist_mgr["Previous"])
path.next()
selection.select_path(path)
self.assertFalse(selection.path_is_selected(path))
self.assertEqual(playlist.PlistModel.playlist, plist_mgr["Previous"])
path.down()
path = model.get_path(model.find_playlist(plist))
selection.select_path(path)
self.assertTrue(selection.path_is_selected(path))
self.assertEqual(playlist.PlistModel.playlist, plist)