aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bot/cogs/moderation/test_silence.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/bot/cogs/moderation/test_silence.py b/tests/bot/cogs/moderation/test_silence.py
index 1db2b6eec..088410bee 100644
--- a/tests/bot/cogs/moderation/test_silence.py
+++ b/tests/bot/cogs/moderation/test_silence.py
@@ -1,6 +1,10 @@
+import asyncio
import unittest
+from functools import partial
+from unittest import mock
from bot.cogs.moderation.silence import FirstHash, Silence
+from bot.constants import Emojis
from tests.helpers import MockBot, MockContext
@@ -32,3 +36,23 @@ class SilenceTests(unittest.TestCase):
self.bot = MockBot()
self.cog = Silence(self.bot)
self.ctx = MockContext()
+
+ def test_silence_sent_correct_discord_message(self):
+ """Check if proper message was sent when called with duration in channel with previous state."""
+ test_cases = (
+ ((self.cog, self.ctx, 0.0001), f"{Emojis.check_mark} #channel silenced for 0.0001 minute(s).", True,),
+ ((self.cog, self.ctx, None), f"{Emojis.check_mark} #channel silenced indefinitely.", True,),
+ ((self.cog, self.ctx, 5), f"{Emojis.cross_mark} #channel is already silenced.", False,),
+ )
+ for silence_call_args, result_message, _silence_patch_return in test_cases:
+ with self.subTest(
+ silence_duration=silence_call_args[-1],
+ result_message=result_message,
+ starting_unsilenced_state=_silence_patch_return
+ ):
+ with mock.patch(
+ "bot.cogs.moderation.silence.Silence._silence",
+ new_callable=partial(mock.AsyncMock, return_value=_silence_patch_return)
+ ):
+ asyncio.run(self.cog.silence.callback(*silence_call_args))
+ self.ctx.send.call_args.assert_called_once_with(result_message)