42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from zyrarbot.storage.queue_repository import QueueRepository
|
|
|
|
|
|
class QueueRepositoryTest(unittest.TestCase):
|
|
def test_snapshots_are_isolated_per_guild(self):
|
|
with tempfile.TemporaryDirectory() as directory:
|
|
repository = QueueRepository(directory)
|
|
first = [{"id": "first", "title": "First", "plays_left": 2}]
|
|
second = [{"id": "second", "title": "Second", "plays_left": 4}]
|
|
|
|
repository.save(10, first)
|
|
repository.save(20, second)
|
|
|
|
self.assertEqual(repository.load(10), first)
|
|
self.assertEqual(repository.load(20), second)
|
|
self.assertTrue((Path(directory) / "10.json").exists())
|
|
self.assertTrue((Path(directory) / "20.json").exists())
|
|
|
|
def test_save_empty_tracks_does_nothing(self):
|
|
with tempfile.TemporaryDirectory() as directory:
|
|
repository = QueueRepository(directory)
|
|
tracks = [{"id": "first", "title": "First", "plays_left": 2}]
|
|
|
|
repository.save(10, tracks)
|
|
self.assertEqual(repository.load(10), tracks)
|
|
|
|
# Próba zapisania pustej listy nie powinna nadpisać poprzedniej
|
|
repository.save(10, [])
|
|
self.assertEqual(repository.load(10), tracks)
|
|
|
|
# Zapis pustej kolejki dla nowego serwera nie powinien tworzyć pliku
|
|
repository.save(20, [])
|
|
self.assertFalse(repository.exists(20))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|