Fix emoji pattern to work without spaces and enhance test coverage for emojize function (#8)

This commit is contained in:
2025-05-04 01:35:32 +02:00
committed by GitHub
parent e1fa04ad70
commit 2014fb4a61
2 changed files with 28 additions and 1 deletions

View File

@@ -14,7 +14,7 @@ with EMOJIS_PATH.open("r", encoding="utf-8") as f:
EMOJI_MAPPING: dict[str, str] = {k: EMOJIS["emojis"][v]["surrogates"] for k, v in EMOJIS["nameToEmoji"].items()} EMOJI_MAPPING: dict[str, str] = {k: EMOJIS["emojis"][v]["surrogates"] for k, v in EMOJIS["nameToEmoji"].items()}
EMOJI_PATTERN = re.compile(r"(?<!\w):([a-zA-Z0-9_-]+):(?!\w)") EMOJI_PATTERN = re.compile(r":([a-zA-Z0-9_-]+):")
def emojize(s: str) -> str: def emojize(s: str) -> str:

View File

@@ -41,3 +41,30 @@ def test_multiple_emojis() -> None:
def test_complex_sentence() -> None: def test_complex_sentence() -> None:
"""Test emojize function with a complex sentence.""" """Test emojize function with a complex sentence."""
assert emojize("Hello :wave:, what's up? :smile: :white_check_mark: :smile:") == "Hello 👋, what's up? 😄 ✅ 😄" assert emojize("Hello :wave:, what's up? :smile: :white_check_mark: :smile:") == "Hello 👋, what's up? 😄 ✅ 😄"
def test_spaces() -> None:
"""Test emojize function with spaces."""
space_tests = [
("Hello :smile::smile:", "Hello 😄😄"),
("Hii what's up :wave:?", "Hii what's up 👋?"),
("Hello:wave: :smile:", "Hello👋 😄"),
("Hellooo :wave:hru?", "Hellooo 👋hru?"),
("Hii:wave:hru?", "Hii👋hru?"),
]
for input_str, expected_output in space_tests:
assert emojize(input_str) == expected_output
def test_emoji_with_special_characters() -> None:
"""Test emojize function with special characters."""
special_char_tests = [
("Hello :smile:!", "Hello 😄!"),
("Hello :smile:?", "Hello 😄?"),
("Hello :smile::smile:!", "Hello 😄😄!"),
("Hello :smile::smile:?", "Hello 😄😄?"),
("Hello :smile::smile::smile:!", "Hello 😄😄😄!"),
("Hello :smile::smile::smile:?", "Hello 😄😄😄?"),
]
for input_str, expected_output in special_char_tests:
assert emojize(input_str) == expected_output