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 == {}
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
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
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