aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/moderation/incidents.py4
-rw-r--r--tests/bot/exts/moderation/test_incidents.py24
2 files changed, 18 insertions, 10 deletions
diff --git a/bot/exts/moderation/incidents.py b/bot/exts/moderation/incidents.py
index 09712f5a0..22b50625a 100644
--- a/bot/exts/moderation/incidents.py
+++ b/bot/exts/moderation/incidents.py
@@ -139,7 +139,7 @@ def has_signals(message: discord.Message) -> bool:
return ALL_SIGNALS.issubset(own_reactions(message))
-async def shorten_text(text: str) -> str:
+def shorten_text(text: str) -> str:
"""Truncate the text if there are over 3 lines or 300 characters, or if it is a single word."""
original_length = len(text)
lines = text.count("\n")
@@ -186,7 +186,7 @@ async def make_message_link_embed(ctx: Context, message_link: str) -> t.Optional
)
embed.add_field(
name="Content",
- value=await shorten_text(message.content)
+ value=shorten_text(message.content)
)
embed.set_footer(text=f"Message ID: {message.id}")
diff --git a/tests/bot/exts/moderation/test_incidents.py b/tests/bot/exts/moderation/test_incidents.py
index 4b2b652fc..3c5d8f47d 100644
--- a/tests/bot/exts/moderation/test_incidents.py
+++ b/tests/bot/exts/moderation/test_incidents.py
@@ -12,7 +12,6 @@ from async_rediscache import RedisSession
from bot.constants import Colours
from bot.exts.moderation import incidents
-from bot.exts.moderation.incidents import extract_message_links
from bot.utils.messages import format_user
from tests.helpers import (
MockAsyncWebhook,
@@ -793,6 +792,19 @@ class TestOnMessage(TestIncidents):
class TestMessageLinkEmbeds(TestIncidents):
"""Tests for `extract_message_links` coroutine."""
+ async def test_shorten_text(self):
+ """Test all cases of text shortening by mocking messages."""
+ tests = {
+ "thisisasingleword"*10: ('thisisasingleword'*10)[:50]+"...",
+ "\n".join("Lets make a new line test".split()): "Lets\nmake\na"+"...",
+ 'Hello, World!' * 300: ('Hello, World!' * 300)[:300] + '...'
+ }
+
+ for test, value in tests.items():
+ self.assertEqual(
+ str(incidents.shorten_text(test)), value
+ )
+
async def extract_and_form_message_link_embeds(self):
"""
Extract message links from a mocked message and form the message link embed.
@@ -821,7 +833,7 @@ class TestMessageLinkEmbeds(TestIncidents):
f"as they break our rules: \n{', '.join(msg_links)}"
)
- embeds = await extract_message_links(incident_msg, self.cog_instance.bot)
+ embeds = await incidents.extract_message_links(incident_msg, self.cog_instance.bot)
description = (
f"**Author:** {format_user(msg.author)}\n"
f"**Channel:** {msg.channel.mention} ({msg.channel.category}/#{msg.channel.name})\n"
@@ -829,15 +841,11 @@ class TestMessageLinkEmbeds(TestIncidents):
)
# Check number of embeds returned with number of valid links
- self.assertEqual(
- self, len(embeds), 2
- )
+ self.assertEqual(len(embeds), 2)
# Check for the embed descriptions
for embed in embeds:
- self.assertEqual(
- self, embed.description, description
- )
+ self.assertEqual(embed.description, description)
@patch("bot.exts.moderation.incidents.is_incident", MagicMock(return_value=True))
async def test_incident_message_edit(self):