aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/moderation/silence.py4
-rw-r--r--tests/bot/exts/moderation/test_silence.py26
2 files changed, 19 insertions, 11 deletions
diff --git a/bot/exts/moderation/silence.py b/bot/exts/moderation/silence.py
index 4253cd4f3..ea531c37a 100644
--- a/bot/exts/moderation/silence.py
+++ b/bot/exts/moderation/silence.py
@@ -117,7 +117,6 @@ class Silence(commands.Cog):
self._everyone_role = guild.default_role
self._verified_voice_role = guild.get_role(constants.Roles.voice_verified)
- self._helper_role = guild.get_role(constants.Roles.helpers)
self._mod_alerts_channel = self.bot.get_channel(constants.Channels.mod_alerts)
@@ -277,7 +276,8 @@ class Silence(commands.Cog):
return afk_channel
- async def _kick_voice_members(self, channel: VoiceChannel) -> None:
+ @staticmethod
+ async def _kick_voice_members(channel: VoiceChannel) -> None:
"""Remove all non-staff members from a voice channel."""
log.debug(f"Removing all non staff members from #{channel.name} ({channel.id}).")
diff --git a/tests/bot/exts/moderation/test_silence.py b/tests/bot/exts/moderation/test_silence.py
index a365b2aae..2d85af7e0 100644
--- a/tests/bot/exts/moderation/test_silence.py
+++ b/tests/bot/exts/moderation/test_silence.py
@@ -7,9 +7,18 @@ from unittest.mock import AsyncMock, Mock
from async_rediscache import RedisSession
from discord import PermissionOverwrite
-from bot.constants import Channels, Guild, Roles
+from bot.constants import Channels, Guild, MODERATION_ROLES, Roles
from bot.exts.moderation import silence
-from tests.helpers import MockBot, MockContext, MockGuild, MockMember, MockTextChannel, MockVoiceChannel, autospec
+from tests.helpers import (
+ MockBot,
+ MockContext,
+ MockGuild,
+ MockMember,
+ MockRole,
+ MockTextChannel,
+ MockVoiceChannel,
+ autospec
+)
redis_session = None
redis_loop = asyncio.get_event_loop()
@@ -164,13 +173,13 @@ class SilenceCogTests(unittest.IsolatedAsyncioTestCase):
await self.cog._async_init()
members = [MockMember() for _ in range(10)]
- members.extend([MockMember(roles=[self.cog._helper_role]) for _ in range(3)])
+ members.extend([MockMember(roles=[MockRole(id=role)]) for role in MODERATION_ROLES])
channel = MockVoiceChannel(members=members)
await self.cog._force_voice_sync(channel)
for member in members:
- if self.cog._helper_role in member.roles:
+ if any(role.id in MODERATION_ROLES for role in member.roles):
member.move_to.assert_not_called()
else:
self.assertEqual(member.move_to.call_count, 2)
@@ -204,13 +213,13 @@ class SilenceCogTests(unittest.IsolatedAsyncioTestCase):
await self.cog._async_init()
members = [MockMember() for _ in range(10)]
- members.extend([MockMember(roles=[self.cog._helper_role]) for _ in range(3)])
+ members.extend([MockMember(roles=[MockRole(id=role)]) for role in MODERATION_ROLES])
channel = MockVoiceChannel(members=members)
await self.cog._kick_voice_members(channel)
for member in members:
- if self.cog._helper_role in member.roles:
+ if any(role.id in MODERATION_ROLES for role in member.roles):
member.move_to.assert_not_called()
else:
self.assertEqual((None,), member.move_to.call_args_list[0].args)
@@ -296,8 +305,7 @@ def voice_sync_helper(function):
@autospec(silence.Silence, "_force_voice_sync", "_kick_voice_members", "_set_silence_overwrites")
async def inner(self, sync, kick, overwrites):
overwrites.return_value = True
- await function(self, MockContext(),
- sync, kick)
+ await function(self, MockContext(), sync, kick)
return inner
@@ -389,7 +397,7 @@ class SilenceTests(unittest.IsolatedAsyncioTestCase):
channel = MockVoiceChannel()
await self.cog.silence.callback(self.cog, ctx, 10, channel, kick=True)
- kick.assert_called_once_with(self.cog, channel)
+ kick.assert_called_once_with(channel)
sync.assert_not_called()
@voice_sync_helper