refactor: isolate application state per Discord server

This commit is contained in:
mmacierzanka committed 2026-08-21 16:14:22 +02:00
1 parent 94be2c7c79
commit 64b428555c
30 files changed
+330 -471

No files matched your search

-2
View File
@@ -30,8 +30,6 @@ EXPECTED_ENDPOINTS = {
("delete", "/api/uploads/{filename}"),
("post", "/api/connect"),
("post", "/api/disconnect"),
("post", "/api/settings/text_channel"),
("post", "/api/settings/default_plays"),
}
+32
View File
@@ -0,0 +1,32 @@
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)
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()