aboutsummaryrefslogtreecommitdiffstats
path: root/_pytest/test_linkifytext.py
blob: 60bf92354cddae25e3c8a6619809bef6379b2a46 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# -*- 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 == "&amp; &lt; &gt; ' \""


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 == "&amp;{}: 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)