diff options
author | 2020-10-09 18:26:03 -0700 | |
---|---|---|
committer | 2020-10-09 18:26:03 -0700 | |
commit | bfab4928e5b219660f76e2516c4ec0bb67fcba89 (patch) | |
tree | 421ffe498461ba5f5857a4e46f2a0810c1263d59 | |
parent | Merge master, fix conflicts, and create redis session in silence tests (diff) |
Silence: require only 1 permission to be False for a manual unsilence
Previously, both sending messages and adding reactions had to be false
in order for the manual unsilence failure message to be sent. Because
staff may only set one of these manually, the message should be sent
if at least one of the permissions is set.
-rw-r--r-- | bot/exts/moderation/silence.py | 2 | ||||
-rw-r--r-- | tests/bot/exts/moderation/test_silence.py | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/bot/exts/moderation/silence.py b/bot/exts/moderation/silence.py index bb8e06924..ee2c0dc7c 100644 --- a/bot/exts/moderation/silence.py +++ b/bot/exts/moderation/silence.py @@ -136,7 +136,7 @@ class Silence(commands.Cog): """Unsilence `channel` and send a success/failure message.""" if not await self._unsilence(channel): overwrite = channel.overwrites_for(self._verified_role) - if overwrite.send_messages is False and overwrite.add_reactions is False: + if overwrite.send_messages is False or overwrite.add_reactions is False: await channel.send(MSG_UNSILENCE_MANUAL) else: await channel.send(MSG_UNSILENCE_FAIL) diff --git a/tests/bot/exts/moderation/test_silence.py b/tests/bot/exts/moderation/test_silence.py index 39e32fdb2..6d5ffa7e8 100644 --- a/tests/bot/exts/moderation/test_silence.py +++ b/tests/bot/exts/moderation/test_silence.py @@ -411,6 +411,8 @@ class UnsilenceTests(unittest.IsolatedAsyncioTestCase): (True, silence.MSG_UNSILENCE_SUCCESS, unsilenced_overwrite), (False, silence.MSG_UNSILENCE_FAIL, unsilenced_overwrite), (False, silence.MSG_UNSILENCE_MANUAL, self.overwrite), + (False, silence.MSG_UNSILENCE_MANUAL, PermissionOverwrite(send_messages=False)), + (False, silence.MSG_UNSILENCE_MANUAL, PermissionOverwrite(add_reactions=False)), ) for was_unsilenced, message, overwrite in test_cases: ctx = MockContext() |