Fix song counter and inconsistent queue state
This commit is contained in:
2 files changed
+45
-7
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user