aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/token_remover.py3
-rw-r--r--tests/bot/cogs/test_token_remover.py10
2 files changed, 13 insertions, 0 deletions
diff --git a/bot/cogs/token_remover.py b/bot/cogs/token_remover.py
index d55e079e9..493479df9 100644
--- a/bot/cogs/token_remover.py
+++ b/bot/cogs/token_remover.py
@@ -63,6 +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.
+
found_token = self.find_token_in_message(msg)
if found_token:
await self.take_action(msg, found_token)
diff --git a/tests/bot/cogs/test_token_remover.py b/tests/bot/cogs/test_token_remover.py
index a10124d2d..22c31d7b1 100644
--- a/tests/bot/cogs/test_token_remover.py
+++ b/tests/bot/cogs/test_token_remover.py
@@ -121,6 +121,16 @@ class TokenRemoverTests(unittest.IsolatedAsyncioTestCase):
find_token_in_message.assert_called_once_with(self.msg)
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."""
+ cog = TokenRemover(self.bot)
+ self.msg.guild = None
+
+ 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."""