# -*- 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 == ': {}'.format(subteam.identifier, subteam.handle, message) def test_linkifytext_at_channel(team): text = linkify_text('@channel: my test message', team) assert text == ': my test message' def test_linkifytext_at_everyone(team): text = linkify_text('@everyone: my test message', team) assert text == ': my test message' def test_linkifytext_at_group(team): text = linkify_text('@group: my test message', team) assert text == ': my test message' def test_linkifytext_at_here(team): text = linkify_text('@here: my test message', team) assert text == ': 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)