fix: decrement plays after playback

This commit is contained in:
mmacierzanka committed 2026-08-21 17:18:21 +02:00
1 parent d6bd302165
commit 6736329603
6 files changed
+39 -4

No files matched your search

+13 -2
View File
@@ -27,6 +27,17 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
self.assertIs(voice_client.playing, track)
self.assertEqual(player.state(GUILD).index, 0)
self.assertEqual(track.plays_left, 5)
async def test_finish_current_decrements_plays_without_going_below_zero(self):
player, _ = build_player(default_plays=1)
track = FakeTrack("a")
await player.enqueue(GUILD, track)
player.finish_current(GUILD)
player.finish_current(GUILD)
self.assertEqual(track.plays_left, 0)
async def test_last_play_remains_pointed_to_until_playback_finishes(self):
player, _ = build_player(default_plays=1)
@@ -51,7 +62,7 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
await player.play_next(GUILD, advance=True)
self.assertEqual([track.id for track in state.queue], ["a", "b", "c"])
self.assertEqual(state.index, 0)
self.assertEqual(state.current.plays_left, 0)
self.assertEqual(state.current.plays_left, 1)
await player.play_next(GUILD, advance=True)
@@ -162,7 +173,7 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
await player.enqueue(1, first)
await player.enqueue(2, second)
self.assertEqual(first.plays_left, 1)
self.assertEqual(first.plays_left, 2)
self.assertEqual(second.plays_left, 7)
async def test_broken_tracks_stop_instead_of_looping_forever(self):