aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/token_remover.py8
-rw-r--r--tests/bot/cogs/test_token_remover.py23
2 files changed, 10 insertions, 21 deletions
diff --git a/bot/cogs/token_remover.py b/bot/cogs/token_remover.py
index 493479df9..1f7517501 100644
--- a/bot/cogs/token_remover.py
+++ b/bot/cogs/token_remover.py
@@ -63,8 +63,9 @@ class TokenRemover(Cog):
See: https://discordapp.com/developers/docs/reference#snowflakes
"""
- if not msg.guild:
- return # Ignore DMs; can't delete messages in there anyway.
+ # Ignore DMs; can't delete messages in there anyway.
+ if not msg.guild or msg.author.bot:
+ return
found_token = self.find_token_in_message(msg)
if found_token:
@@ -115,9 +116,6 @@ class TokenRemover(Cog):
@classmethod
def find_token_in_message(cls, msg: Message) -> t.Optional[Token]:
"""Return a seemingly valid token found in `msg` or `None` if no token is found."""
- if msg.author.bot:
- return
-
# Use finditer rather than search to guard against method calls prematurely returning the
# token check (e.g. `message.channel.send` also matches our token pattern)
for match in TOKEN_RE.finditer(msg.content):
diff --git a/tests/bot/cogs/test_token_remover.py b/tests/bot/cogs/test_token_remover.py
index 22c31d7b1..98ea9f823 100644
--- a/tests/bot/cogs/test_token_remover.py
+++ b/tests/bot/cogs/test_token_remover.py
@@ -122,24 +122,15 @@ class TokenRemoverTests(unittest.IsolatedAsyncioTestCase):
take_action.assert_not_awaited()
@autospec(TokenRemover, "find_token_in_message")
- async def test_on_message_ignores_dms(self, find_token_in_message):
- """Shouldn't parse a message if it is a DM."""
+ async def test_on_message_ignores_dms_bots(self, find_token_in_message):
+ """Shouldn't parse a message if it is a DM or authored by a bot."""
cog = TokenRemover(self.bot)
- self.msg.guild = None
+ dm_msg = MockMessage(guild=None)
+ bot_msg = MockMessage(author=MagicMock(bot=True))
- await cog.on_message(self.msg)
-
- find_token_in_message.assert_not_called()
-
- @autospec("bot.cogs.token_remover", "TOKEN_RE")
- def test_find_token_ignores_bot_messages(self, token_re):
- """The token finder should ignore messages authored by bots."""
- self.msg.author.bot = True
-
- return_value = TokenRemover.find_token_in_message(self.msg)
-
- self.assertIsNone(return_value)
- token_re.finditer.assert_not_called()
+ for msg in (dm_msg, bot_msg):
+ await cog.on_message(msg)
+ find_token_in_message.assert_not_called()
@autospec("bot.cogs.token_remover", "TOKEN_RE")
def test_find_token_no_matches(self, token_re):