rind: Clean up playlist view test

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-05-19 21:32:14 -04:00
parent 5ef15bfab3
commit 0e74303b13
2 changed files with 66 additions and 90 deletions

View File

@ -12,5 +12,6 @@ class UserNode(node.PlaylistNode):
def reset(self):
node.PlaylistNode.reset(self)
self.starred.reset()
self.insert_child(self.starred)
node.nodes[id(self.starred)] = self.starred

View File

@ -14,6 +14,15 @@ class TestPlaylistView(unittest.TestCase):
curds.reset()
view.reset()
self.plist = curds.Playlist("Test Playlist")
view.switch(self.plist)
def add_track(self, trackno):
path = os.path.join(test_album, f"{trackno:02} - Test Track {trackno:02}.ogg")
track = curds.Track.lookup(path)
self.plist.add(track)
gtk.notify_loop()
def test_init(self):
self.assertIsInstance(view.Loop, Gtk.ToggleButton)
self.assertIsInstance(view.Model, model.PlaylistModel)
@ -21,161 +30,127 @@ class TestPlaylistView(unittest.TestCase):
self.assertIsInstance(view.TreeView, Gtk.TreeView)
self.assertIsInstance(view.Selection, Gtk.TreeSelection)
view.reset()
self.assertEqual(view.Model.playlist, curds.playlist.lookup("Collection"))
def test_switch(self):
plist = curds.Playlist("Test Playlist")
plist = curds.Playlist("Test Playlist 2")
view.switch(plist)
self.assertEqual(view.Model.playlist, plist)
self.assertEqual(view.TreeView.get_model(), view.Model)
def test_loop_toggled(self):
plist = curds.Playlist("Test Playlist")
model = view.Model
view.switch(plist)
self.assertEqual(view.Model, model)
self.assertFalse(plist.loop)
view.switch(plist, force=True)
self.assertNotEqual(view.Model, model)
def test_loop_toggled(self):
self.assertFalse(self.plist.loop)
view.Loop.set_active(True)
self.assertTrue(plist.loop)
self.assertTrue(self.plist.loop)
view.Loop.set_active(False)
self.assertFalse(plist.loop)
self.assertFalse(self.plist.loop)
plist.can_loop = False
self.plist.can_loop = False
view.Loop.set_active(True)
self.assertFalse(plist.loop)
self.assertFalse(self.plist.loop)
self.assertFalse(view.Loop.get_active())
def test_random_toggled(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
self.assertFalse(plist.random)
self.assertFalse(self.plist.random)
view.Random.set_active(True)
self.assertTrue(plist.random)
self.assertTrue(self.plist.random)
view.Random.set_active(False)
self.assertFalse(plist.random)
self.assertFalse(self.plist.random)
plist.can_random = False
self.plist.can_random = False
view.Random.set_active(True)
self.assertFalse(plist.random)
self.assertFalse(self.plist.random)
self.assertFalse(view.Random.get_active())
def test_switch_toggle_buttons(self):
plist = curds.Playlist("Test Playlist")
plist.can_random = False
plist.can_loop = False
view.switch(plist)
self.plist.can_random = False
self.plist.can_loop = False
view.switch(self.plist, force=True)
self.assertFalse(view.Loop.is_sensitive())
self.assertFalse(view.Random.is_sensitive())
plist.can_random = True
plist.can_loop = True
plist.random = True
plist.loop = True
view.switch(plist)
self.assertFalse(view.Loop.is_sensitive())
self.assertFalse(view.Random.is_sensitive())
view.switch(plist, force=True)
self.plist.can_random = True
self.plist.can_loop = True
self.plist.random = True
self.plist.loop = True
view.switch(self.plist, force=True)
self.assertTrue(view.Loop.is_sensitive())
self.assertTrue(view.Loop.get_active())
self.assertTrue(view.Random.is_sensitive())
self.assertTrue(view.Random.get_active())
def test_columns_clickable(self):
for i, col in enumerate(view.TreeView.get_columns()):
if i == 0:
self.assertFalse(col.get_clickable())
else:
self.assertTrue(col.get_clickable())
def test_column_clicks(self):
plist = view.Model.playlist
plist.sort_order = [ ]
self.plist.sort_order = [ ]
self.assertFalse(view.TreeView.get_columns()[0].get_clickable())
for i, col in enumerate(view.TreeView.get_columns()[1:]):
self.assertTrue(col.get_clickable())
col.clicked()
self.assertEqual(plist.sort_order, [ model.cols[i+1] ])
self.assertEqual(self.plist.sort_order, [ model.cols[i+1] ])
self.assertEqual(col.get_sort_indicator(), True)
self.assertEqual(col.get_sort_order(), Gtk.SortType.ASCENDING)
col.clicked()
self.assertEqual(plist.sort_order, [ ])
self.assertEqual(self.plist.sort_order, [ ])
self.assertEqual(col.get_sort_order(), False)
def on_row_inserted(self, model, path, iter):
self.row_inserted += 1
def test_add_track(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
cb = view.Model.connect("row-inserted", self.on_row_inserted)
self.row_inserted = 0
for i in range(1, 11):
track = curds.Track.lookup(os.path.join(test_album, f"{i:02} - Test Track {i:02}.ogg"))
plist.add(track)
self.plist.add(track)
gtk.notify_loop()
self.assertEqual(self.row_inserted, 10)
view.Model.disconnect(cb)
def test_playlist_changed(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
for i in range(1, 11):
track = curds.Track.lookup(os.path.join(test_album, f"{i:02} - Test Track {i:02}.ogg"))
plist.add(track)
gtk.notify_loop()
self.assertEqual(view.Runtime.get_text(), f" {plist.runtime()} ")
self.add_track(i)
self.assertEqual(view.Runtime.get_text(), f" {self.plist.runtime()} ")
def test_playlist_switch_runtime(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
self.assertEqual(view.Runtime.get_text(), f"")
view.switch(curds.playlist.Starred)
self.assertEqual(view.Runtime.get_text(), "")
for i in range(1, 11):
track = curds.Track.lookup(os.path.join(test_album, f"{i:02} - Test Track {i:02}.ogg"))
plist.add(track)
gtk.notify_loop()
view.switch(plist, force=True)
self.assertEqual(view.Runtime.get_text(), f" {plist.runtime()} ")
view.switch(self.plist)
self.assertEqual(view.Runtime.get_text(), f" {self.plist.runtime()} ")
def test_stream_start(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
curds.playlist.Root.select(plist)
curds.playlist.Root.select(self.plist)
for i in range(1, 11):
track = curds.Track.lookup(os.path.join(test_album, f"{i:02} - Test Track {i:02}.ogg"))
plist.add(track)
gtk.notify_loop()
for i in range(10):
plist.current = i
curds.notify.notify("stream-start")
self.assertEqual(view.Selection.count_selected_rows(), 1)
self.assertTrue( view.Selection.path_is_selected(Gtk.TreePath(i)))
plist.current = -1
curds.notify.notify("stream-start")
self.assertEqual(view.Selection.count_selected_rows(), 0)
def test_switch_scroll(self):
plist = curds.Playlist("Test Playlist")
view.switch(plist)
curds.playlist.Root.select(plist)
for i in range(1, 11):
track = curds.Track.lookup(os.path.join(test_album, f"{i:02} - Test Track {i:02}.ogg"))
plist.add(track)
gtk.notify_loop()
self.add_track(i)
for i in range(-1, 10):
plist.current = i
view.switch(plist, force=True)
self.plist.current = i
curds.notify.notify("stream-start")
if i == -1:
self.assertEqual(view.Selection.count_selected_rows(), 0)
else:
self.assertEqual(view.Selection.count_selected_rows(), 1)
self.assertTrue( view.Selection.path_is_selected(Gtk.TreePath(i)))
def test_switch_scroll(self):
for i in range(1, 11):
self.add_track(i)
for i in range(-1, 10):
self.plist.current = i
view.switch(self.plist, force=True)
if i == -1:
self.assertEqual(view.Selection.count_selected_rows(), 0)
else: