aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_pytest/test_linkifytext.py37
-rw-r--r--wee_slack.py2
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 == '&amp; &lt; &gt; \' "'
+
+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('>', '&gt;')
.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"]: