fix: tests and linters
This commit is contained in:
7 files changed
+122
-131
No files matched your search
@@ -1,32 +1,33 @@
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from __future__ import annotations
|
||||
|
||||
from zyrarbot.storage.guild_config_repository import GuildConfigRepository
|
||||
from zyrarbot.storage.json_file_store import JsonFileStore
|
||||
import unittest
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from zyrarbot.storage.adapters.postgres.guild_config import PostgresGuildConfig
|
||||
|
||||
|
||||
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)
|
||||
def setUp(self):
|
||||
self.database = MagicMock()
|
||||
self.connection = self.database.connect.return_value.__enter__.return_value
|
||||
self.repository = PostgresGuildConfig(self.database, 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)
|
||||
def test_default_plays_uses_fallback_when_guild_has_no_override(self):
|
||||
self.connection.execute.return_value.fetchone.return_value = (None,)
|
||||
|
||||
repository.set_default_plays(20, 9)
|
||||
self.assertEqual(repository.get_default_plays(10), 7)
|
||||
self.assertEqual(repository.get_default_plays(20), 9)
|
||||
self.assertEqual(self.repository.get_default_plays(10), 5)
|
||||
|
||||
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)
|
||||
def test_default_plays_returns_guild_override(self):
|
||||
self.connection.execute.return_value.fetchone.return_value = (7,)
|
||||
|
||||
self.assertEqual(self.repository.get_default_plays(10), 7)
|
||||
|
||||
def test_set_default_plays_creates_guild_then_updates_setting(self):
|
||||
self.repository.set_default_plays(10, 9)
|
||||
|
||||
statements = [call.args[0] for call in self.connection.execute.call_args_list]
|
||||
self.assertIn("INSERT INTO guilds", statements[0])
|
||||
self.assertIn("UPDATE guilds SET default_plays", statements[1])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in new issue
Block a user