fix: tests and linters
This commit is contained in:
7 files changed
+122
-131
No files matched your search
+33
-42
@@ -3,12 +3,11 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import tempfile
|
||||
import unittest
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from tests.fakes import FakeTrack, build_player
|
||||
from zyrarbot.music.loop_mode import LoopMode
|
||||
from zyrarbot.storage.queue_repository import QueueRepository
|
||||
|
||||
GUILD = 1
|
||||
|
||||
@@ -293,28 +292,26 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
async def test_restore_replaces_active_queue_without_old_callback_interference(self):
|
||||
player, voice_client = build_player()
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
player._queues = QueueRepository(directory)
|
||||
player._queues.save(
|
||||
GUILD,
|
||||
[{"id": "restored", "title": "Restored", "plays_left": 3}],
|
||||
)
|
||||
player._queues = MagicMock()
|
||||
player._queues.load.return_value = [
|
||||
{"id": "restored", "title": "Restored", "plays_left": 3}
|
||||
]
|
||||
|
||||
async def from_url(url, loop=None):
|
||||
return FakeTrack("restored")
|
||||
async def from_url(url, loop=None):
|
||||
return FakeTrack("restored")
|
||||
|
||||
player._tracks.from_url = from_url
|
||||
await player.enqueue(GUILD, FakeTrack("old"))
|
||||
old_callback = voice_client.after
|
||||
player._tracks.from_url = from_url
|
||||
await player.enqueue(GUILD, FakeTrack("old"))
|
||||
old_callback = voice_client.after
|
||||
|
||||
count = await player.restore_queue(GUILD)
|
||||
count = await player.restore_queue(GUILD)
|
||||
|
||||
self.assertEqual(count, 1)
|
||||
self.assertEqual([track.id for track in player.state(GUILD).queue], ["restored"])
|
||||
self.assertIs(player.state(GUILD).current, player.state(GUILD).queue[0])
|
||||
old_callback(None)
|
||||
await asyncio.sleep(0)
|
||||
self.assertEqual([track.id for track in player.state(GUILD).queue], ["restored"])
|
||||
self.assertEqual(count, 1)
|
||||
self.assertEqual([track.id for track in player.state(GUILD).queue], ["restored"])
|
||||
self.assertIs(player.state(GUILD).current, player.state(GUILD).queue[0])
|
||||
old_callback(None)
|
||||
await asyncio.sleep(0)
|
||||
self.assertEqual([track.id for track in player.state(GUILD).queue], ["restored"])
|
||||
|
||||
async def test_restore_requires_voice_connection(self):
|
||||
player, _ = build_player()
|
||||
@@ -324,34 +321,28 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
|
||||
await player.restore_queue(GUILD)
|
||||
|
||||
def test_save_queue_does_not_overwrite_with_empty_queue(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
player, _ = build_player()
|
||||
player._queues = QueueRepository(directory)
|
||||
saved = [{"id": "saved", "title": "Saved", "plays_left": 2}]
|
||||
player._queues.save(GUILD, saved)
|
||||
player, _ = build_player()
|
||||
player._queues = MagicMock()
|
||||
|
||||
# Kolejka w stanie odtwarzacza jest pusta
|
||||
player.state(GUILD).queue = []
|
||||
player.save_queue(GUILD)
|
||||
# Kolejka w stanie odtwarzacza jest pusta
|
||||
player.state(GUILD).queue = []
|
||||
player.save_queue(GUILD)
|
||||
|
||||
# Zapisana wcześniej kolejka powinna pozostać nienaruszona
|
||||
self.assertEqual(player._queues.load(GUILD), saved)
|
||||
# Zapisana wcześniej kolejka powinna pozostać nienaruszona
|
||||
player._queues.save.assert_not_called()
|
||||
|
||||
def test_save_queue_does_not_save_when_all_plays_consumed(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
player, _ = build_player()
|
||||
player._queues = QueueRepository(directory)
|
||||
saved = [{"id": "saved", "title": "Saved", "plays_left": 2}]
|
||||
player._queues.save(GUILD, saved)
|
||||
player, _ = build_player()
|
||||
player._queues = MagicMock()
|
||||
|
||||
# Wszystkie utwory w kolejce mają plays_left = 0
|
||||
track = FakeTrack("consumed")
|
||||
track.plays_left = 0
|
||||
player.state(GUILD).queue = [track]
|
||||
player.save_queue(GUILD)
|
||||
# Wszystkie utwory w kolejce mają plays_left = 0
|
||||
track = FakeTrack("consumed")
|
||||
track.plays_left = 0
|
||||
player.state(GUILD).queue = [track]
|
||||
player.save_queue(GUILD)
|
||||
|
||||
# Zapisana wcześniej kolejka powinna pozostać nienaruszona
|
||||
self.assertEqual(player._queues.load(GUILD), saved)
|
||||
# Zapisana wcześniej kolejka powinna pozostać nienaruszona
|
||||
player._queues.save.assert_not_called()
|
||||
|
||||
|
||||
class LoopModeTest(unittest.TestCase):
|
||||
|
||||
Reference in new issue
Block a user