diff options
| author | 2021-10-11 12:52:39 +0530 | |
|---|---|---|
| committer | 2021-10-11 12:52:39 +0530 | |
| commit | 863c8d76c66ea748af9ab29bad1d02d16e3888f2 (patch) | |
| tree | e1ca7ec9589d8336613ff951eda64cbf09b34da5 | |
| parent | Apply requested grammar and style changes (diff) | |
Refactor `shorten_text` utility function
Diffstat (limited to '')
| -rw-r--r-- | bot/exts/moderation/incidents.py | 10 | ||||
| -rw-r--r-- | tests/bot/exts/moderation/test_incidents.py | 19 | 
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( | 
