Files
zyrarbot/tests/test_guild_config_repository.py
T

34 lines
1.3 KiB
Python

import json
import tempfile
import unittest
from pathlib import Path
from zyrarbot.storage.guild_config_repository import GuildConfigRepository
from zyrarbot.storage.json_file_store import JsonFileStore
class GuildConfigRepositoryTest(unittest.TestCase):
def test_settings_are_isolated_and_legacy_default_moves_to_first_guild(self):
with tempfile.TemporaryDirectory() as directory:
path = Path(directory) / "config.json"
path.write_text(json.dumps({"default_plays": 7, "10": 123}), encoding="utf-8")
repository = GuildConfigRepository(JsonFileStore(str(path)), fallback_plays=5)
repository.migrate_legacy(10)
self.assertEqual(repository.get_default_plays(10), 7)
self.assertEqual(repository.get_notification_channel_id(10), 123)
self.assertEqual(repository.get_default_plays(20), 5)
repository.set_default_plays(20, 9)
self.assertEqual(repository.get_default_plays(10), 7)
self.assertEqual(repository.get_default_plays(20), 9)
saved = json.loads(path.read_text(encoding="utf-8"))
self.assertNotIn("default_plays", saved)
self.assertEqual(saved["10"]["default_plays"], 7)
self.assertEqual(saved["20"]["default_plays"], 9)
if __name__ == "__main__":
unittest.main()