diff options
-rw-r--r-- | _pytest/test_linkifytext.py | 37 | ||||
-rw-r--r-- | wee_slack.py | 2 |
2 files changed, 38 insertions, 1 deletions
diff --git a/_pytest/test_linkifytext.py b/_pytest/test_linkifytext.py index 56bf1b5..f321d81 100644 --- a/_pytest/test_linkifytext.py +++ b/_pytest/test_linkifytext.py @@ -1,5 +1,10 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals + from wee_slack import linkify_text + #def test_linkifytext(): # linkify_text('@ryan') @@ -13,3 +18,35 @@ def test_linkifytext_does_partial_html_entity_encoding(realish_eventrouter): text = linkify_text('& < > \' "', team, channel) assert text == '& < > \' "' + +def test_linkifytext_names_with_paranthesis(realish_eventrouter): + team = realish_eventrouter.teams.values()[0] + channel = team.channels.values()[0] + + text = linkify_text('@JohnDoe(jdoe): my test message', team, channel) + + assert text == '@JohnDoe(jdoe): my test message' + +def test_linkifytext_names_with_accents(realish_eventrouter): + team = realish_eventrouter.teams.values()[0] + channel = team.channels.values()[0] + + text = linkify_text('@ÁrvíztűrőTükörfúrógép(atukorfurogep): my test message', team, channel) + + assert text == '@ÁrvíztűrőTükörfúrógép(atukorfurogep): my test message' + +def test_linkifytext_formatting_characters(realish_eventrouter): + team = realish_eventrouter.teams.values()[0] + channel = team.channels.values()[0] + + text = linkify_text('\x02\x1Dmy test message\x1D\x02', team, channel) + + assert text == '*_my test message_*' + +def test_linkifytext_with_many_paranthesis(realish_eventrouter): + team = realish_eventrouter.teams.values()[0] + channel = team.channels.values()[0] + + text = linkify_text('@k(o(v)a)())s: my(( test) message', team, channel) + + assert text == '@k(o(v)a)())s: my(( test) message' diff --git a/wee_slack.py b/wee_slack.py index c0e220a..9f3b8cc 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -2913,7 +2913,7 @@ def linkify_text(message, team, channel): .replace('>', '>') .split(' ')) for item in enumerate(message): - targets = re.match('^\s*([@#])([\w.-]+[\w. -])(\W*)', item[1]) + targets = re.match('^\s*([@#])([\w\(\).-]+)(\W*)', item[1], re.UNICODE) if targets and targets.groups()[0] == '@': named = targets.groups() if named[1] in ["group", "channel", "here"]: |