trackdb: Have the UpNextPlaylist use Track.remove_from_playlist()

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-07-07 14:06:56 -04:00
parent 13be9e3ee2
commit 1cd9780cdf
3 changed files with 14 additions and 10 deletions

View File

@ -3,13 +3,17 @@
tracks = { }
class FakeTrack:
def __init__(self, n):
def __init__(self, n, tag=None):
self.trackid = n
self.length = n
self.tag = tag
def __int__(self):
return self.trackid
def remove_from_playlist(self, name):
self.tag.remove_track(self)
def Track(n):
return tracks.setdefault(n, FakeTrack(n))
def Track(n, tag=None):
return tracks.setdefault((n,tag), FakeTrack(n, tag=tag))

View File

@ -61,15 +61,15 @@ class TestUserTags(unittest.TestCase):
self.assertFalse(u.can_loop())
self.assertIsNone(u.next())
u.tracks = [ fake.Track(1), fake.Track(2), fake.Track(3) ]
self.assertEqual(u.next(), fake.Track(1))
self.assertEqual(u.tracks, [ fake.Track(2), fake.Track(3) ])
u.tracks = [ fake.Track(1, u), fake.Track(2, u), fake.Track(3, u) ]
self.assertEqual(u.next(), fake.Track(1, u))
self.assertEqual(u.tracks, [ fake.Track(2, u), fake.Track(3, u) ])
self.assertEqual(u.next(), fake.Track(2))
self.assertEqual(u.tracks, [ fake.Track(3) ])
self.assertEqual(u.next(), fake.Track(2, u))
self.assertEqual(u.tracks, [ fake.Track(3, u) ])
u.random = True
self.assertEqual(u.next(), fake.Track(3))
self.assertEqual(u.next(), fake.Track(3, u))
self.assertEqual(u.tracks, [ ])
self.assertFalse(u.random)

View File

@ -48,7 +48,7 @@ class UpNextTag(tag.Tag):
def next(self):
track = super().next()
if track is not None:
self.remove_track(track)
track.remove_from_playlist("Up Next")
with self.lock:
self.current -= 1
if len(self.tracks) == 0: