diff options
| author | 2022-01-21 21:34:41 +0000 | |
|---|---|---|
| committer | 2022-01-25 09:44:19 +0000 | |
| commit | 32d77fa9839eb9d373106700dcc4927851d94635 (patch) | |
| tree | 3e3a9ab725877212bfbff28f91b07e965511b5b0 | |
| parent | Rename voice_ban type to voice_mute (diff) | |
Refactor voice_ban function definitions to voice_mute
This changes all functions that reference voice_ban to voice_mute instead, which comes with breaking front-end changes.
These front end changes are desirable, so that moderators get used to use voice_mute now, rather than voice_ban, in preparation for when we roll out real voice_bans.
| -rw-r--r-- | bot/exts/moderation/infraction/infractions.py | 42 | ||||
| -rw-r--r-- | tests/bot/exts/moderation/infraction/test_infractions.py | 78 | 
2 files changed, 60 insertions, 60 deletions
| diff --git a/bot/exts/moderation/infraction/infractions.py b/bot/exts/moderation/infraction/infractions.py index 72e09cbf4..d6580bc14 100644 --- a/bot/exts/moderation/infraction/infractions.py +++ b/bot/exts/moderation/infraction/infractions.py @@ -107,8 +107,8 @@ class Infractions(InfractionScheduler, commands.Cog):          """          await self.apply_ban(ctx, user, reason, 1, expires_at=duration) -    @command(aliases=('vban',)) -    async def voiceban( +    @command(aliases=("vmute",)) +    async def voicemute(          self,          ctx: Context,          user: UnambiguousMemberOrUser, @@ -117,11 +117,11 @@ class Infractions(InfractionScheduler, commands.Cog):          reason: t.Optional[str]      ) -> None:          """ -        Permanently ban user from using voice channels. +        Permanently mute user in voice channels. -        If duration is specified, it temporarily voice bans that user for the given duration. +        If duration is specified, it temporarily voice mutes that user for the given duration.          """ -        await self.apply_voice_ban(ctx, user, reason, expires_at=duration) +        await self.apply_voice_mute(ctx, user, reason, expires_at=duration)      # endregion      # region: Temporary infractions @@ -185,17 +185,17 @@ class Infractions(InfractionScheduler, commands.Cog):          """          await self.apply_ban(ctx, user, reason, expires_at=duration) -    @command(aliases=("tempvban", "tvban")) -    async def tempvoiceban( -            self, -            ctx: Context, -            user: UnambiguousMemberOrUser, -            duration: Expiry, -            *, -            reason: t.Optional[str] +    @command(aliases=("tempvmute", "tvmute")) +    async def tempvoicemute( +        self, +        ctx: Context, +        user: UnambiguousMemberOrUser, +        duration: Expiry, +        *, +        reason: t.Optional[str]      ) -> None:          """ -        Temporarily voice ban a user for the given reason and duration. +        Temporarily voice mute a user for the given reason and duration.          A unit of time should be appended to the duration.          Units (∗case-sensitive): @@ -209,7 +209,7 @@ class Infractions(InfractionScheduler, commands.Cog):          Alternatively, an ISO 8601 timestamp can be provided for the duration.          """ -        await self.apply_voice_ban(ctx, user, reason, expires_at=duration) +        await self.apply_voice_mute(ctx, user, reason, expires_at=duration)      # endregion      # region: Permanent shadow infractions @@ -270,9 +270,9 @@ class Infractions(InfractionScheduler, commands.Cog):          """Prematurely end the active ban infraction for the user."""          await self.pardon_infraction(ctx, "ban", user) -    @command(aliases=("uvban",)) -    async def unvoiceban(self, ctx: Context, user: UnambiguousMemberOrUser) -> None: -        """Prematurely end the active voice ban infraction for the user.""" +    @command(aliases=("uvmute",)) +    async def unvoicemute(self, ctx: Context, user: UnambiguousMemberOrUser) -> None: +        """Prematurely end the active voice mute infraction for the user."""          await self.pardon_infraction(ctx, "voice_mute", user)      # endregion @@ -395,8 +395,8 @@ class Infractions(InfractionScheduler, commands.Cog):          await bb_cog.apply_unwatch(ctx, user, bb_reason, send_message=False)      @respect_role_hierarchy(member_arg=2) -    async def apply_voice_ban(self, ctx: Context, user: MemberOrUser, reason: t.Optional[str], **kwargs) -> None: -        """Apply a voice ban infraction with kwargs passed to `post_infraction`.""" +    async def apply_voice_mute(self, ctx: Context, user: MemberOrUser, reason: t.Optional[str], **kwargs) -> None: +        """Apply a voice mute infraction with kwargs passed to `post_infraction`."""          if await _utils.get_active_infraction(ctx, user, "voice_mute"):              return @@ -471,7 +471,7 @@ class Infractions(InfractionScheduler, commands.Cog):          return log_text -    async def pardon_voice_ban( +    async def pardon_voice_mute(          self,          user_id: int,          guild: discord.Guild, diff --git a/tests/bot/exts/moderation/infraction/test_infractions.py b/tests/bot/exts/moderation/infraction/test_infractions.py index a796fd049..f89465f84 100644 --- a/tests/bot/exts/moderation/infraction/test_infractions.py +++ b/tests/bot/exts/moderation/infraction/test_infractions.py @@ -62,8 +62,8 @@ class TruncationTests(unittest.IsolatedAsyncioTestCase):  @patch("bot.exts.moderation.infraction.infractions.constants.Roles.voice_verified", new=123456) -class VoiceBanTests(unittest.IsolatedAsyncioTestCase): -    """Tests for voice ban related functions and commands.""" +class VoiceMuteTests(unittest.IsolatedAsyncioTestCase): +    """Tests for voice mute related functions and commands."""      def setUp(self):          self.bot = MockBot() @@ -73,59 +73,59 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):          self.ctx = MockContext(bot=self.bot, author=self.mod)          self.cog = Infractions(self.bot) -    async def test_permanent_voice_ban(self): -        """Should call voice ban applying function without expiry.""" -        self.cog.apply_voice_ban = AsyncMock() -        self.assertIsNone(await self.cog.voiceban(self.cog, self.ctx, self.user, reason="foobar")) -        self.cog.apply_voice_ban.assert_awaited_once_with(self.ctx, self.user, "foobar", expires_at=None) +    async def test_permanent_voice_mute(self): +        """Should call voice mute applying function without expiry.""" +        self.cog.apply_voice_mute = AsyncMock() +        self.assertIsNone(await self.cog.voicemute(self.cog, self.ctx, self.user, reason="foobar")) +        self.cog.apply_voice_mute.assert_awaited_once_with(self.ctx, self.user, "foobar", expires_at=None) -    async def test_temporary_voice_ban(self): -        """Should call voice ban applying function with expiry.""" -        self.cog.apply_voice_ban = AsyncMock() -        self.assertIsNone(await self.cog.tempvoiceban(self.cog, self.ctx, self.user, "baz", reason="foobar")) -        self.cog.apply_voice_ban.assert_awaited_once_with(self.ctx, self.user, "foobar", expires_at="baz") +    async def test_temporary_voice_mute(self): +        """Should call voice mute applying function with expiry.""" +        self.cog.apply_voice_mute = AsyncMock() +        self.assertIsNone(await self.cog.tempvoicemute(self.cog, self.ctx, self.user, "baz", reason="foobar")) +        self.cog.apply_voice_mute.assert_awaited_once_with(self.ctx, self.user, "foobar", expires_at="baz") -    async def test_voice_unban(self): +    async def test_voice_unmute(self):          """Should call infraction pardoning function."""          self.cog.pardon_infraction = AsyncMock() -        self.assertIsNone(await self.cog.unvoiceban(self.cog, self.ctx, self.user)) +        self.assertIsNone(await self.cog.unvoicemute(self.cog, self.ctx, self.user))          self.cog.pardon_infraction.assert_awaited_once_with(self.ctx, "voice_mute", self.user)      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_user_have_active_infraction(self, get_active_infraction, post_infraction_mock): -        """Should return early when user already have Voice Ban infraction.""" +    async def test_voice_mute_user_have_active_infraction(self, get_active_infraction, post_infraction_mock): +        """Should return early when user already have Voice Mute infraction."""          get_active_infraction.return_value = {"foo": "bar"} -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, "foobar")) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, "foobar"))          get_active_infraction.assert_awaited_once_with(self.ctx, self.user, "voice_mute")          post_infraction_mock.assert_not_awaited()      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_infraction_post_failed(self, get_active_infraction, post_infraction_mock): +    async def test_voice_mute_infraction_post_failed(self, get_active_infraction, post_infraction_mock):          """Should return early when posting infraction fails."""          self.cog.mod_log.ignore = MagicMock()          get_active_infraction.return_value = None          post_infraction_mock.return_value = None -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, "foobar")) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, "foobar"))          post_infraction_mock.assert_awaited_once()          self.cog.mod_log.ignore.assert_not_called()      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_infraction_post_add_kwargs(self, get_active_infraction, post_infraction_mock): -        """Should pass all kwargs passed to apply_voice_ban to post_infraction.""" +    async def test_voice_mute_infraction_post_add_kwargs(self, get_active_infraction, post_infraction_mock): +        """Should pass all kwargs passed to apply_voice_mute to post_infraction."""          get_active_infraction.return_value = None          # We don't want that this continue yet          post_infraction_mock.return_value = None -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, "foobar", my_kwarg=23)) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, "foobar", my_kwarg=23))          post_infraction_mock.assert_awaited_once_with(              self.ctx, self.user, "voice_mute", "foobar", active=True, my_kwarg=23          )      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_mod_log_ignore(self, get_active_infraction, post_infraction_mock): +    async def test_voice_mute_mod_log_ignore(self, get_active_infraction, post_infraction_mock):          """Should ignore Voice Verified role removing."""          self.cog.mod_log.ignore = MagicMock()          self.cog.apply_infraction = AsyncMock() @@ -134,11 +134,11 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):          get_active_infraction.return_value = None          post_infraction_mock.return_value = {"foo": "bar"} -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, "foobar")) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, "foobar"))          self.cog.mod_log.ignore.assert_called_once_with(Event.member_update, self.user.id)      async def action_tester(self, action, reason: str) -> None: -        """Helper method to test voice ban action.""" +        """Helper method to test voice mute action."""          self.assertTrue(inspect.iscoroutine(action))          await action @@ -147,7 +147,7 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_apply_infraction(self, get_active_infraction, post_infraction_mock): +    async def test_voice_mute_apply_infraction(self, get_active_infraction, post_infraction_mock):          """Should ignore Voice Verified role removing."""          self.cog.mod_log.ignore = MagicMock()          self.cog.apply_infraction = AsyncMock() @@ -156,22 +156,22 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):          post_infraction_mock.return_value = {"foo": "bar"}          reason = "foobar" -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, reason)) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, reason))          self.cog.apply_infraction.assert_awaited_once_with(self.ctx, {"foo": "bar"}, self.user, ANY)          await self.action_tester(self.cog.apply_infraction.call_args[0][-1], reason)      @patch("bot.exts.moderation.infraction.infractions._utils.post_infraction")      @patch("bot.exts.moderation.infraction.infractions._utils.get_active_infraction") -    async def test_voice_ban_truncate_reason(self, get_active_infraction, post_infraction_mock): -        """Should truncate reason for voice ban.""" +    async def test_voice_mute_truncate_reason(self, get_active_infraction, post_infraction_mock): +        """Should truncate reason for voice mute."""          self.cog.mod_log.ignore = MagicMock()          self.cog.apply_infraction = AsyncMock()          get_active_infraction.return_value = None          post_infraction_mock.return_value = {"foo": "bar"} -        self.assertIsNone(await self.cog.apply_voice_ban(self.ctx, self.user, "foobar" * 3000)) +        self.assertIsNone(await self.cog.apply_voice_mute(self.ctx, self.user, "foobar" * 3000))          self.cog.apply_infraction.assert_awaited_once_with(self.ctx, {"foo": "bar"}, self.user, ANY)          # Test action @@ -180,13 +180,13 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):      @autospec(_utils, "post_infraction", "get_active_infraction", return_value=None)      @autospec(Infractions, "apply_infraction") -    async def test_voice_ban_user_left_guild(self, apply_infraction_mock, post_infraction_mock, _): -        """Should voice ban user that left the guild without throwing an error.""" +    async def test_voice_mute_user_left_guild(self, apply_infraction_mock, post_infraction_mock, _): +        """Should voice mute user that left the guild without throwing an error."""          infraction = {"foo": "bar"}          post_infraction_mock.return_value = {"foo": "bar"}          user = MockUser() -        await self.cog.voiceban(self.cog, self.ctx, user, reason=None) +        await self.cog.voicemute(self.cog, self.ctx, user, reason=None)          post_infraction_mock.assert_called_once_with(self.ctx, user, "voice_mute", None, active=True, expires_at=None)          apply_infraction_mock.assert_called_once_with(self.cog, self.ctx, infraction, user, ANY) @@ -195,22 +195,22 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):          self.assertTrue(inspect.iscoroutine(action))          await action -    async def test_voice_unban_user_not_found(self): +    async def test_voice_unmute_user_not_found(self):          """Should include info to return dict when user was not found from guild."""          self.guild.get_member.return_value = None          self.guild.fetch_member.side_effect = NotFound(Mock(status=404), "Not found") -        result = await self.cog.pardon_voice_ban(self.user.id, self.guild) +        result = await self.cog.pardon_voice_mute(self.user.id, self.guild)          self.assertEqual(result, {"Info": "User was not found in the guild."})      @patch("bot.exts.moderation.infraction.infractions._utils.notify_pardon")      @patch("bot.exts.moderation.infraction.infractions.format_user") -    async def test_voice_unban_user_found(self, format_user_mock, notify_pardon_mock): +    async def test_voice_unmute_user_found(self, format_user_mock, notify_pardon_mock):          """Should add role back with ignoring, notify user and return log dictionary.."""          self.guild.get_member.return_value = self.user          notify_pardon_mock.return_value = True          format_user_mock.return_value = "my-user" -        result = await self.cog.pardon_voice_ban(self.user.id, self.guild) +        result = await self.cog.pardon_voice_mute(self.user.id, self.guild)          self.assertEqual(result, {              "Member": "my-user",              "DM": "Sent" @@ -219,13 +219,13 @@ class VoiceBanTests(unittest.IsolatedAsyncioTestCase):      @patch("bot.exts.moderation.infraction.infractions._utils.notify_pardon")      @patch("bot.exts.moderation.infraction.infractions.format_user") -    async def test_voice_unban_dm_fail(self, format_user_mock, notify_pardon_mock): +    async def test_voice_unmute_dm_fail(self, format_user_mock, notify_pardon_mock):          """Should add role back with ignoring, notify user and return log dictionary.."""          self.guild.get_member.return_value = self.user          notify_pardon_mock.return_value = False          format_user_mock.return_value = "my-user" -        result = await self.cog.pardon_voice_ban(self.user.id, self.guild) +        result = await self.cog.pardon_voice_mute(self.user.id, self.guild)          self.assertEqual(result, {              "Member": "my-user",              "DM": "**Failed**" | 
