refactor: isolate application state per Discord server
This commit is contained in:
30 files changed
+330
-471
No files matched your search
@@ -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"),
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user