# -*- 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)