Fix song counter and inconsistent queue state

This commit is contained in:
mmacierzanka committed 2026-08-21 14:56:29 +02:00
1 parent 4468f96c3b
commit fff320d3f2
2 files changed
+45 -7

No files matched your search

+23 -2
View File
@@ -25,15 +25,36 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
self.assertIs(voice_client.playing, track)
self.assertEqual(player.state(GUILD).index, 0)
async def test_single_play_budget_drops_track_from_queue(self):
async def test_last_play_remains_pointed_to_until_playback_finishes(self):
player, _ = build_player(default_plays=1)
track = FakeTrack("a")
await player.enqueue(GUILD, track)
state = player.state(GUILD)
self.assertEqual(state.queue, [track])
self.assertEqual(state.index, 0)
self.assertIs(state.current, track)
await player.play_next(GUILD, advance=True)
self.assertEqual(state.queue, [])
self.assertEqual(state.index, -1)
self.assertIs(state.current, track)
self.assertIsNone(state.current)
async def test_last_play_of_recreated_track_is_removed_after_callback(self):
player, _, state = await self._queue_abc(default_plays=2)
state.loop_mode = LoopMode.TRACK
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)
await player.play_next(GUILD, advance=True)
self.assertEqual([track.id for track in state.queue], ["b", "c"])
self.assertEqual(state.index, 0)
self.assertEqual(state.current.id, "b")
async def test_enqueue_while_playing_only_appends(self):
_, _, state = await self._queue_abc()