aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-10-06 13:23:03 -0700
committerGravatar MarkKoz <[email protected]>2020-10-06 13:23:03 -0700
commitcf2c03215ef340b9e093828de365563bb6be587a (patch)
treea167014b5e5bc06e52c3953180107bc377b182c4 /tests
parentSilence: move unsilence scheduling to a separate function (diff)
Silence: refactor _silence
* Rename to `_silence_overwrites` * Reduce responsibilities to only setting permission overwrites * Log in `silence` instead * Add to notifier in `silence` instead
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/cogs/moderation/test_silence.py38
1 files changed, 22 insertions, 16 deletions
diff --git a/tests/bot/cogs/moderation/test_silence.py b/tests/bot/cogs/moderation/test_silence.py
index d56a731b6..9dbdfd10a 100644
--- a/tests/bot/cogs/moderation/test_silence.py
+++ b/tests/bot/cogs/moderation/test_silence.py
@@ -245,8 +245,8 @@ class SilenceTests(unittest.IsolatedAsyncioTestCase):
)
for duration, message, was_silenced in test_cases:
ctx = MockContext()
- with self.subTest(was_silenced=was_silenced, message=message, duration=duration):
- with mock.patch.object(self.cog, "_silence", return_value=was_silenced):
+ with mock.patch.object(self.cog, "_silence_overwrites", return_value=was_silenced):
+ with self.subTest(was_silenced=was_silenced, message=message, duration=duration):
await self.cog.silence.callback(self.cog, ctx, duration)
ctx.send.assert_called_once_with(message)
@@ -264,12 +264,12 @@ class SilenceTests(unittest.IsolatedAsyncioTestCase):
channel = MockTextChannel()
channel.overwrites_for.return_value = overwrite
- self.assertFalse(await self.cog._silence(channel, True, None))
+ self.assertFalse(await self.cog._silence_overwrites(channel))
channel.set_permissions.assert_not_called()
async def test_silenced_channel(self):
"""Channel had `send_message` and `add_reactions` permissions revoked for verified role."""
- self.assertTrue(await self.cog._silence(self.channel, False, None))
+ self.assertTrue(await self.cog._silence_overwrites(self.channel))
self.assertFalse(self.overwrite.send_messages)
self.assertFalse(self.overwrite.add_reactions)
self.channel.set_permissions.assert_awaited_once_with(
@@ -280,7 +280,7 @@ class SilenceTests(unittest.IsolatedAsyncioTestCase):
async def test_preserved_other_overwrites(self):
"""Channel's other unrelated overwrites were not changed."""
prev_overwrite_dict = dict(self.overwrite)
- await self.cog._silence(self.channel, False, None)
+ await self.cog._silence_overwrites(self.channel)
new_overwrite_dict = dict(self.overwrite)
# Remove 'send_messages' & 'add_reactions' keys because they were changed by the method.
@@ -291,22 +291,28 @@ class SilenceTests(unittest.IsolatedAsyncioTestCase):
self.assertDictEqual(prev_overwrite_dict, new_overwrite_dict)
- async def test_added_removed_notifier(self):
- """Channel was added to notifier if `persistent` was `True`, and removed if `False`."""
- with mock.patch.object(self.cog, "notifier", create=True):
- with self.subTest(persistent=True):
- await self.cog._silence(self.channel, True, None)
- self.cog.notifier.add_channel.assert_called_once()
+ async def test_temp_added_to_notifier(self):
+ """Channel was added to notifier if a duration was set for the silence."""
+ with mock.patch.object(self.cog, "_silence_overwrites", return_value=True):
+ await self.cog.silence.callback(self.cog, MockContext(), 15)
+ self.cog.notifier.add_channel.assert_called_once()
- with mock.patch.object(self.cog, "notifier", create=True):
- with self.subTest(persistent=False):
- await self.cog._silence(self.channel, False, None)
- self.cog.notifier.add_channel.assert_not_called()
+ async def test_indefinite_not_added_to_notifier(self):
+ """Channel was not added to notifier if a duration was not set for the silence."""
+ with mock.patch.object(self.cog, "_silence_overwrites", return_value=True):
+ await self.cog.silence.callback(self.cog, MockContext(), None)
+ self.cog.notifier.add_channel.assert_not_called()
+
+ async def test_silenced_not_added_to_notifier(self):
+ """Channel was not added to the notifier if it was already silenced."""
+ with mock.patch.object(self.cog, "_silence_overwrites", return_value=False):
+ await self.cog.silence.callback(self.cog, MockContext(), 15)
+ self.cog.notifier.add_channel.assert_not_called()
async def test_cached_previous_overwrites(self):
"""Channel's previous overwrites were cached."""
overwrite_json = '{"send_messages": true, "add_reactions": false}'
- await self.cog._silence(self.channel, False, None)
+ await self.cog._silence_overwrites(self.channel)
self.cog.previous_overwrites.set.assert_called_once_with(self.channel.id, overwrite_json)
@autospec(silence, "datetime")