from __future__ import print_function, unicode_literals
import wee_slack
import pytest
@pytest.mark.parametrize(
"case",
(
{
"input_message": {
"attachments": [
{
"title": "Title",
}
]
},
"input_text_before": "Text before",
"output": "\n".join(
[
"",
"| Title",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"title_link": "http://title.link",
"from_url": "http://from.url",
"fallback": "Fallback",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title (http://title.link)",
"| http://from.url",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"title_link": "http://title.link",
"image_url": "http://image.url",
"fallback": "Fallback",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title (http://title.link)",
"| Attachment text",
"| http://image.url",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"title_link": "http://link?a=1&b=2",
"from_url": "http://link?a=1&b=2",
"image_url": "http://link?a=1&b=2",
}
]
},
"input_text_before": "http://link?a=1&b=2",
"output": "\n".join(
[
"",
"| Title",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"title_link": "http://link?a=1&b=2",
"from_url": "http://link?a=1&b=2",
"image_url": "http://link?a=1&b=2",
}
]
},
"input_text_before": "http://link?a=1&b=2",
"output": "\n".join(
[
"",
"| Title",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"title_link": "http://link",
"from_url": "http://link",
"image_url": "http://link",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title (http://link)",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text",
"from_url": "http://link",
"image_url": "http://link",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title",
"| http://link",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"text": "Attachment text\n\n\nWith multiple lines",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title",
"| Attachment text",
"| With multiple lines",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"author_name": "Author",
"pretext": "Pretext",
"text": "Attachment text",
"title_link": "http://title.link",
"from_url": "http://from.url",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Pretext",
"| Author: Title (http://title.link)",
"| http://from.url",
"| Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"author_name": "Author",
"text": "Attachment text",
"title_link": "http://title.link",
"from_url": "http://from.url",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| http://from.url",
"| Author: Attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"fallback": "Fallback",
}
]
},
"input_text_before": "",
"output": "| Fallback",
},
{
"input_message": {
"attachments": [
{
"fallback": "Fallback",
"title_link": "http://link",
}
]
},
"input_text_before": "http://link",
"output": "",
},
{
"input_message": {
"attachments": [
{
"fallback": "Fallback",
"from_url": "http://link",
}
]
},
"input_text_before": "http://link",
"output": "",
},
{
"input_message": {
"attachments": [
{
"fallback": "Fallback",
"image_url": "http://link",
}
]
},
"input_text_before": "http://link",
"output": "",
},
{
"input_message": {
"attachments": [
{"text": "Some message", "footer": "Thread in #general"}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Some message",
"| Thread in #general",
]
),
},
{
"input_message": {
"attachments": [
{
"ts": 1584986782,
"text": "Some message",
"footer": "Thread in #general",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Some message",
"| Thread in #general | Mar 23, 2020",
]
),
},
{
"input_message": {
"attachments": [
{
"ts": "1584986782.261400",
"text": "Some message",
"footer": "Thread in #general",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Some message",
"| Thread in #general | Mar 23, 2020",
]
),
},
{
"input_message": {
"attachments": [
{
"text": "Original message",
"files": [
{
"title": "File",
"url_private": "http://link",
}
],
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Original message",
"| http://link (File)",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"fields": [
{
"title": "First field title",
"value": "First field value",
},
{
"title": "",
"value": "Second field value",
},
],
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Title",
"| First field title: First field value",
"| Second field value",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "First attachment title",
"text": "First attachment text",
"title_link": "http://title.link.1",
"from_url": "http://from.url.1",
},
{
"title": "Second attachment title",
"text": "Second attachment text",
"title_link": "http://title.link.2",
"from_url": "http://from.url.2",
},
]
},
"input_text_before": "",
"output": "\n".join(
[
"| First attachment title (http://title.link.1)",
"| http://from.url.1",
"| First attachment text",
"| Second attachment title (http://title.link.2)",
"| http://from.url.2",
"| Second attachment text",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"color": "ff0000",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"<[color 16711680]>|<[color reset]> Title",
]
),
},
{
"input_message": {
"attachments": [
{
"title": "Title",
"color": "#ff0000",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"<[color 16711680]>|<[color reset]> Title",
]
),
},
{
"input_message": {
"attachments": [
{
"text": "Attachment text",
"original_url": "http://from.url",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Attachment text",
]
),
"link_previews": True,
},
{
"input_message": {
"attachments": [
{
"text": "Attachment text",
"original_url": "http://from.url",
}
]
},
"input_text_before": "",
"output": "",
"link_previews": False,
},
{
"input_message": {
"attachments": [
{
"text": "Attachment text",
}
]
},
"input_text_before": "",
"output": "\n".join(
[
"| Attachment text",
]
),
"link_previews": False,
},
),
)
def test_unwrap_attachments(case, channel_general):
wee_slack.config.link_previews = case.get("link_previews")
message_json = {"ts": str(wee_slack.SlackTS()), **case["input_message"]}
message = wee_slack.SlackMessage("normal", message_json, channel_general)
result = wee_slack.unwrap_attachments(message, case["input_text_before"])
assert result == case["output"]