aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Shivansh-007 <[email protected]>2021-10-11 12:52:39 +0530
committerGravatar Shivansh-007 <[email protected]>2021-10-11 12:52:39 +0530
commit863c8d76c66ea748af9ab29bad1d02d16e3888f2 (patch)
treee1ca7ec9589d8336613ff951eda64cbf09b34da5
parentApply requested grammar and style changes (diff)
Refactor `shorten_text` utility function
-rw-r--r--bot/exts/moderation/incidents.py10
-rw-r--r--tests/bot/exts/moderation/test_incidents.py19
2 files changed, 20 insertions, 9 deletions
diff --git a/bot/exts/moderation/incidents.py b/bot/exts/moderation/incidents.py
index 0d28490b3..4a84d825e 100644
--- a/bot/exts/moderation/incidents.py
+++ b/bot/exts/moderation/incidents.py
@@ -142,16 +142,18 @@ def has_signals(message: discord.Message) -> bool:
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")
+ lines = text.split("\n")
# Limit to a maximum of three lines
- if lines > 3:
- text = "\n".join(line for line in text.split('\n')[:3])
+ if len(lines) > 3:
+ text = "\n".join(line for line in lines[:3])
+
# If it is a single word, then truncate it to 50 characters
if text.count(" ") < 1:
text = text[:50]
# Truncate text to a maximum of 300 characters
- if len(text) > 300:
+ elif len(text) > 300:
text = text[:300]
+
# Add placeholder if the text was shortened
if len(text) < original_length:
text += "..."
diff --git a/tests/bot/exts/moderation/test_incidents.py b/tests/bot/exts/moderation/test_incidents.py
index 3bdc9128c..8304af1c0 100644
--- a/tests/bot/exts/moderation/test_incidents.py
+++ b/tests/bot/exts/moderation/test_incidents.py
@@ -795,9 +795,16 @@ class TestMessageLinkEmbeds(TestIncidents):
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] + '...'
+ "thisisasingleword"*10: "thisisasinglewordthisisasinglewordthisisasinglewor...",
+
+ "\n".join("Lets make a new line test".split()): "Lets\nmake\na...",
+
+ 'Hello, World!' * 300: (
+ "Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!"
+ "Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!"
+ "Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!"
+ "Hello, World!Hello, World!H..."
+ )
}
for content, expected_conversion in tests.items():
@@ -829,8 +836,10 @@ class TestMessageLinkEmbeds(TestIncidents):
incident_msg = MockMessage(
id=777,
- content=f"I would like to report the following messages, "
- f"as they break our rules: \n{', '.join(msg_links)}"
+ content=(
+ f"I would like to report the following messages, "
+ f"as they break our rules: \n{', '.join(msg_links)}"
+ )
)
with patch(