35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
from unittest.mock import MagicMock
|
|
|
|
from zyrarbot.storage.adapters.postgres.guild_config import PostgresGuildConfig
|
|
|
|
|
|
class GuildConfigRepositoryTest(unittest.TestCase):
|
|
def setUp(self):
|
|
self.database = MagicMock()
|
|
self.connection = self.database.connect.return_value.__enter__.return_value
|
|
self.repository = PostgresGuildConfig(self.database, fallback_plays=5)
|
|
|
|
def test_default_plays_uses_fallback_when_guild_has_no_override(self):
|
|
self.connection.execute.return_value.fetchone.return_value = (None,)
|
|
|
|
self.assertEqual(self.repository.get_default_plays(10), 5)
|
|
|
|
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__":
|
|
unittest.main()
|