# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals
import re
from wee_slack import linkify_text
def test_linkifytext_does_partial_html_entity_encoding(team):
text = linkify_text('& < > \' "', team)
assert text == '& < > \' "'
def test_linkifytext_names_with_paranthesis(team):
text = linkify_text('@JohnDoe(jdoe): my test message', team)
assert text == '@JohnDoe(jdoe): my test message'
def test_linkifytext_names_with_accents(team):
text = linkify_text('@ÁrvíztűrőTükörfúrógép(atukorfurogep): my test message', team)
assert text == '@ÁrvíztűrőTükörfúrógép(atukorfurogep): my test message'
def test_linkifytext_formatting_characters(team):
text = linkify_text('\x02\x1Dmy test message\x1D\x02', team)
assert text == '*_my test message_*'
def test_linkifytext_with_many_paranthesis(team):
text = linkify_text('@k(o(v)a)())s: my(( test) message', team)
assert text == '@k(o(v)a)())s: my(( test) message'
def test_linkifytext_names_with_apostrophe(team):
text = linkify_text('@O\'Connor: my test message', team)
assert text == '@O\'Connor: my test message'
def test_linkifytext_names_with_subgroup_notification(team):
subteam = team.subteams['TGX0ALBK3']
message = 'This is a message for a subteam'
text = linkify_text('{}: {}'.format(subteam.handle, message), team)
assert text == '<!subteam^{}|{}>: {}'.format(subteam.identifier, subteam.handle, message)
def test_linkifytext_at_channel(team):
text = linkify_text('@channel: my test message', team)
assert text == '<!channel>: my test message'
def test_linkifytext_at_everyone(team):
text = linkify_text('@everyone: my test message', team)
assert text == '<!everyone>: my test message'
def test_linkifytext_at_group(team):
text = linkify_text('@group: my test message', team)
assert text == '<!group>: my test message'
def test_linkifytext_at_here(team):
text = linkify_text('@here: my test message', team)
assert text == '<!here>: my test message'
def test_linkifytext_channel(team, channel_general):
channel_name = re.sub(r'^[#&]', '', channel_general.name)
text = linkify_text('#{}: my test message'.format(channel_name), team)
assert text == '<#{}|{}>: my test message'.format(channel_general.id, channel_name)
def test_linkifytext_not_private_using_hash(team, channel_private):
channel_name = re.sub(r'^[#&]', '', channel_private.name)
text = linkify_text('#{}: my test message'.format(channel_name), team)
assert text == '#{}: my test message'.format(channel_name)
def test_linkifytext_not_private_using_ampersand(team, channel_private):
channel_name = re.sub(r'^[#&]', '', channel_private.name)
text = linkify_text('&{}: my test message'.format(channel_name), team)
assert text == '&{}: my test message'.format(channel_name)
def test_linkifytext_not_dm(team, channel_dm):
text = linkify_text('#{}: my test message'.format(channel_dm.name), team)
assert text == '#{}: my test message'.format(channel_dm.name)
def test_linkifytext_not_mpdm(team, channel_mpdm):
text = linkify_text('#{}: my test message'.format(channel_mpdm.name), team)
assert text == '#{}: my test message'.format(channel_mpdm.name)