diff options
| author | 2020-03-08 19:42:51 +0100 | |
|---|---|---|
| committer | 2020-03-08 19:42:51 +0100 | |
| commit | 1d83a5752aae483224129ee798e529f3d7d8e132 (patch) | |
| tree | ace8473a6641b170819d752f90a009530801f285 /tests | |
| parent | Add test case for Silence cog. (diff) | |
Add test for `silence` discord output.
Diffstat (limited to '')
| -rw-r--r-- | tests/bot/cogs/moderation/test_silence.py | 24 | 
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)  |