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"]