aboutsummaryrefslogtreecommitdiffstats
path: root/_pytest/test_process_message.py
blob: 5017c105182ea34ac12e9290540a8a9a54589345 (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
from __future__ import print_function, unicode_literals

import json

from wee_slack import SlackTS


def test_process_message(realish_eventrouter, team, user_alice):
    messages = []
    messages.append(
        json.loads(
            open("_pytest/data/websocket/1485975421.33-message.json", "r").read()
        )
    )

    # test message and then change
    messages.append(
        json.loads(open("_pytest/data/websocket/1485976151.6-message.json", "r").read())
    )
    messages.append(
        json.loads(
            open("_pytest/data/websocket/1485976157.18-message.json", "r").read()
        )
    )

    # test message then deletion
    messages.append(
        json.loads(
            open("_pytest/data/websocket/1485975698.45-message.json", "r").read()
        )
    )
    messages.append(
        json.loads(
            open("_pytest/data/websocket/1485975723.85-message.json", "r").read()
        )
    )

    for m in messages:
        m["user"] = user_alice.id
        team.ws.add(m)

    realish_eventrouter.receive_ws_callback(team.team_hash, None)
    realish_eventrouter.handle_next()
    realish_eventrouter.handle_next()
    realish_eventrouter.handle_next()
    realish_eventrouter.handle_next()
    realish_eventrouter.handle_next()

    assert sum([len(channel.messages) for channel in team.channels.values()]) == 3

    unchanged_message_channel = team.channels["D3ZEQULHZ"]
    unchanged_message_ts = SlackTS("1485975421.000002")
    assert list(unchanged_message_channel.messages.keys()) == [unchanged_message_ts]
    assert (
        unchanged_message_channel.messages[unchanged_message_ts].message_json["text"]
        == "hi bob"
    )
    assert (
        "edited"
        not in unchanged_message_channel.messages[unchanged_message_ts].message_json
    )

    changed_message_channel = team.channels["C407ABS94"]
    changed_message_ts = SlackTS("1485976151.000016")
    assert list(changed_message_channel.messages.keys()) == [changed_message_ts]
    assert (
        changed_message_channel.messages[changed_message_ts].message_json["text"]
        == "referencing a <#C407ABS94|general>"
    )
    assert "edited" in changed_message_channel.messages[changed_message_ts].message_json

    deleted_message_channel = team.channels["G3ZGMF4RZ"]
    deleted_message_ts = SlackTS("1485975698.000002")
    assert list(deleted_message_channel.messages.keys()) == [deleted_message_ts]
    deleted_str = "<[color red]>(deleted)<[color reset]>"
    assert (
        deleted_message_channel.messages[deleted_message_ts].message_json["text"]
        == deleted_str
    )