Esempio n. 1
0
def test_slack_no_metadata():
    input_channel = SlackInput(slack_token="YOUR_SLACK_TOKEN",
                               slack_channel="YOUR_SLACK_CHANNEL")

    r = Mock()
    metadata = input_channel.get_metadata(request=r)
    assert metadata == {}
Esempio n. 2
0
def test_slack_metadata():
    user = "******"
    channel = "channel1"
    authed_users = ["XXXXXXX", "YYYYYYY", "ZZZZZZZ"]
    ts = "1579802617.000800"
    team_id = "XXXXXXXXX"
    header = {"content-type": "application/json"}
    direct_message_event = {
        "authed_users": authed_users,
        "event": {
            "client_msg_id":
            "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "type":
            "message",
            "text":
            "hello world",
            "user":
            user,
            "ts":
            ts,
            "team":
            team_id,
            "blocks": [{
                "type":
                "rich_text",
                "block_id":
                "XXXXX",
                "elements": [{
                    "type": "rich_text_section",
                    "elements": [{
                        "type": "text",
                        "text": "hi"
                    }],
                }],
            }],
            "channel":
            channel,
            "event_ts":
            "1579802617.000800",
            "channel_type":
            "im",
        },
    }

    input_channel = SlackInput(
        slack_token="YOUR_SLACK_TOKEN",
        slack_channel="YOUR_SLACK_CHANNEL",
        slack_signing_secret="foobar",
    )

    r = Mock()
    r.json = direct_message_event
    r.headers = header
    metadata = input_channel.get_metadata(request=r)
    assert metadata["out_channel"] == channel
    assert metadata["users"] == authed_users
    assert metadata["thread_id"] == ts
    assert metadata["team_id"] == team_id
Esempio n. 3
0
def test_slack_form_metadata():
    user = "******"
    channel = "channel1"
    authed_user = "******"
    ts = "1579802617.000800"
    header = {"content-type": "application/x-www-form-urlencoded"}
    payload = {
        "type": "block_actions",
        "user": {
            "id": authed_user,
            "username": user,
            "name": "name"
        },
        "channel": {
            "id": channel
        },
        "message": {
            "type":
            "message",
            "text":
            "text",
            "user":
            authed_user,
            "ts":
            ts,
            "blocks": [{
                "type":
                "actions",
                "block_id":
                "XXXXX",
                "elements": [{
                    "type": "button",
                    "action_id": "XXXXX",
                    "text": {
                        "type": "plain_text",
                        "text": "text"
                    },
                    "value": "value",
                }],
            }],
        },
    }
    form_event = {"payload": [json.dumps(payload)]}

    input_channel = SlackInput(
        slack_token="YOUR_SLACK_TOKEN",
        slack_channel="YOUR_SLACK_CHANNEL",
        slack_signing_secret="foobar",
    )

    r = Mock()
    r.form = form_event
    r.headers = header
    metadata = input_channel.get_metadata(request=r)
    assert metadata["out_channel"] == channel
    assert metadata["users"][0] == authed_user
    assert metadata["thread_id"] == ts
Esempio n. 4
0
def test_slack_metadata_missing_keys():
    channel = "channel1"
    ts = "1579802617.000800"
    header = {"content-type": "application/json"}
    direct_message_event = {
        "event": {
            "client_msg_id":
            "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "type":
            "message",
            "text":
            "hello world",
            "ts":
            ts,
            "team":
            "XXXXXXXXX",
            "blocks": [{
                "type":
                "rich_text",
                "block_id":
                "XXXXX",
                "elements": [{
                    "type": "rich_text_section",
                    "elements": [{
                        "type": "text",
                        "text": "hi"
                    }],
                }],
            }],
            "channel":
            channel,
            "event_ts":
            "1579802617.000800",
            "channel_type":
            "im",
        }
    }

    input_channel = SlackInput(slack_token="YOUR_SLACK_TOKEN",
                               slack_channel="YOUR_SLACK_CHANNEL")

    r = Mock()
    r.json = direct_message_event
    r.headers = header
    metadata = input_channel.get_metadata(request=r)
    assert metadata["users"] == []
    assert metadata["out_channel"] == channel
    assert metadata["thread_id"] == ts