rind: Clean up playlist track add tests

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-05-23 12:04:41 -04:00
parent dc4803eb46
commit 419e80d983
5 changed files with 34 additions and 64 deletions

View File

@ -49,9 +49,7 @@ class Playlist(node.PlaylistNode):
index = self.bisect_track(track)
self.list[index:index] = [ track ]
if self.visible == True:
notify.notify("add-track", self, track, index)
self.changed()
self.track_added(index)
def bisect_track(self, track):
key = self.sort_key(track)
@ -67,7 +65,7 @@ class Playlist(node.PlaylistNode):
return begin
def changed(self):
notify.notify("playlist-changed", self)
notify.notify("playlist-changed", self)
def next(self):
max = len(self) - 1
@ -147,3 +145,8 @@ class Playlist(node.PlaylistNode):
val = ''.join(filter(str.isalnum, val.lower()))
ret.append(val)
return ret
def track_added(self, index):
if self.visible == True:
notify.notify("add-track", self, index)
self.changed()

View File

@ -10,8 +10,7 @@ class PreviousPlaylist(playlist.Playlist):
if track is not None and track not in self:
self.list.insert(0, track)
self.current = 0
notify.notify("add-track", self, track, 0)
self.changed()
self.track_added(0)
def sort(self, field):
return False

View File

@ -16,10 +16,9 @@ class TestPlaylist(unittest.TestCase):
notify.register("add-track", self.on_add)
notify.register("playlist-changed", self.on_plist_changed)
self.cb_plist = None
self.cb_track = None
self.cb_index = None
self.cb_changed = None
self.plist = playlist.Playlist("Test Playlist")
self.plist = playlist.Playlist("Test Playlist", sort=[])
def tearDown(self):
notify.cancel("add-track", self.on_add)
@ -33,9 +32,8 @@ class TestPlaylist(unittest.TestCase):
self.plist.add(tracks[-1])
return tracks
def on_add(self, plist, track, index):
def on_add(self, plist, index):
self.cb_plist = plist
self.cb_track = track
self.cb_index = index
def on_plist_changed(self, plist):
@ -80,31 +78,29 @@ class TestPlaylist(unittest.TestCase):
self.add_tracks([2])
self.assertEqual(str(self.plist), "Test Playlist\n2 Tracks")
def test_playlist_add(self):
self.assertEqual(str(self.plist), "Test Playlist\n0 Tracks")
self.plist.add(tags.Track.lookup(os.path.join(test_album, "01 - Test Track 01.ogg")))
self.assertEqual(len(self.plist), 1)
self.assertEqual(str(self.plist), "Test Playlist\n1 Track")
self.assertEqual(self.plist.runtime(), "1 second")
def test_playlist_add_append(self):
tracks = self.add_tracks(range(1, 6))
self.plist.add(tags.Track.lookup(os.path.join(test_album, "02 - Test Track 02.ogg")))
self.assertEqual(len(self.plist), 2)
self.assertEqual(str(self.plist), "Test Playlist\n2 Tracks")
self.assertEqual(self.plist.runtime(), "3 seconds")
self.assertEqual(len(self.plist), 5)
self.assertEqual(self.cb_changed, self.plist)
self.assertIsNone(self.cb_plist)
self.assertIsNone(self.cb_index)
for i, track in enumerate(tracks):
self.assertEqual(self.plist[i], track)
self.plist.add(tags.Track.lookup(os.path.join(test_album, "02 - Test Track 02.ogg")))
self.assertEqual(len(self.plist), 2)
self.assertEqual(str(self.plist), "Test Playlist\n2 Tracks")
self.assertEqual(self.plist.runtime(), "3 seconds")
self.plist.show()
self.add_tracks([6])
self.assertEqual(len(self.plist), 6)
self.assertEqual(self.cb_plist, self.plist)
self.assertEqual(self.cb_index, 5)
self.plist.add(None)
self.assertEqual(len(self.plist), 2)
self.assertEqual(str(self.plist), "Test Playlist\n2 Tracks")
self.assertEqual(self.plist.runtime(), "3 seconds")
self.assertNotIn(None, self.plist)
self.plist.reset()
self.assertEqual(len(self.plist), 0)
def test_playlist_add_sorted(self):
self.plist.sort("tracknumber")
tracknos = [ 5, 6, 4, 7, 3, 8, 2, 9, 1, 10 ]
tracks = self.add_tracks(tracknos)
self.assertEqual(len(self.plist), 10)
for i, track in enumerate(self.plist.list):
self.assertEqual(track.tracknumber, i + 1)
def test_playlist_runtime(self):
track = self.add_tracks([1])[0]
@ -124,30 +120,6 @@ class TestPlaylist(unittest.TestCase):
track.length = 172800
self.assertEqual(self.plist.runtime(), "2 days")
def test_playlist_notifications(self):
track1 = tags.Track.lookup(os.path.join(test_album, "01 - Test Track 01.ogg"))
track2 = tags.Track.lookup(os.path.join(test_album, "02 - Test Track 02.ogg"))
self.plist.add(track1)
self.assertEqual(self.cb_plist, None)
self.assertEqual(self.cb_track, None)
self.assertEqual(self.cb_index, None)
self.assertEqual(self.cb_changed, self.plist)
self.plist.show()
self.assertTrue(self.plist.visible)
self.plist.add(track2)
self.assertEqual(self.cb_plist, self.plist)
self.assertEqual(self.cb_track, track2)
self.assertEqual(self.cb_index, 1)
self.assertEqual(self.cb_changed, self.plist)
self.plist.add(None)
self.assertEqual(self.cb_plist, self.plist)
self.assertEqual(self.cb_track, track2)
self.assertEqual(self.cb_index, 1)
self.assertEqual(self.cb_changed, self.plist)
def test_playlist_can_loop_random(self):
self.plist = playlist.Playlist("Test Playlist", can_loop=False, can_random=False)

View File

@ -12,20 +12,19 @@ class TestPreviousPlaylist(unittest.TestCase):
def setUp(self):
notify.register("add-track", self.on_add_track)
self.cb_plist = None
self.cb_track = None
self.cb_index = 0
def tearDown(self):
notify.cancel("add-track", self.on_add_track)
def on_add_track(self, plist, track, index):
def on_add_track(self, plist, index):
if isinstance(plist, previous.PreviousPlaylist):
self.cb_plist = plist
self.cb_track = track
self.cb_index = index
def test_previous_playlist(self):
plist = previous.PreviousPlaylist()
plist.show()
self.assertIsInstance(plist, previous.PreviousPlaylist)
self.assertIsInstance(plist, playlist.Playlist)
@ -55,14 +54,12 @@ class TestPreviousPlaylist(unittest.TestCase):
plist.add(track1)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track1)
self.assertEqual(self.cb_index, 0)
self.assertEqual(plist.current, 0)
self.assertEqual(plist.next(), None)
plist.add(track2)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track2)
self.assertEqual(self.cb_index, 0)
self.assertEqual(plist.current, 0)

View File

@ -53,10 +53,9 @@ for i, column in enumerate(TreeView.get_columns()):
column.connect("clicked", on_column_clicked, i)
def on_add_track(plist, track, index):
def on_add_track(plist, index):
if plist == Model.playlist:
iter = Model.iter_nth_child(None, index)
Model.row_inserted(Gtk.TreePath(index), iter)
Model.row_inserted(Gtk.TreePath(0), Gtk.TreeIter())
curds.notify.register("add-track", on_add_track, queue=True)