from __future__ import print_function, unicode_literals import pytest import wee_slack @pytest.mark.parametrize( "case", [ { "blocks": [ { "type": "rich_text", "block_id": "dhGA", "elements": [ { "type": "rich_text_section", "elements": [ {"type": "text", "text": "normal "}, { "type": "text", "text": "bold", "style": {"bold": True}, }, {"type": "text", "text": " "}, { "type": "text", "text": "italic", "style": {"italic": True}, }, {"type": "text", "text": " "}, { "type": "text", "text": "strikethrough", "style": {"strike": True}, }, {"type": "text", "text": " "}, { "type": "text", "text": "bold-italic-strikethrough", "style": { "bold": True, "italic": True, "strike": True, }, }, {"type": "text", "text": " "}, { "type": "link", "url": "https://vg.no", "text": "link", }, {"type": "text", "text": "\n"}, ], }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "number"}], }, { "type": "rich_text_section", "elements": [{"type": "text", "text": "list"}], }, ], "style": "ordered", "indent": 0, "border": 0, }, { "type": "rich_text_quote", "elements": [ {"type": "text", "text": "some quote\nmore quote"} ], }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "inline code", "style": {"code": True}, }, {"type": "text", "text": "\n"}, ], }, { "type": "rich_text_preformatted", "elements": [ {"type": "text", "text": "block code\nmore code"} ], "border": 0, }, { "type": "rich_text_section", "elements": [ {"type": "user", "user_id": "U407ABLLW"}, {"type": "text", "text": ": "}, { "type": "emoji", "name": "open_mouth", "unicode": "1f62e", }, ], }, ], } ], "rendered": [ "normal <[color bold]>*bold*<[color -bold]> <[color italic]>_italic_" "<[color -italic]> ~strikethrough~ <[color bold]><[color italic]>" "*_~bold-italic-strikethrough~_*<[color -bold]><[color -italic]> " "https://vg.no (link)", "1. number", "2. list", "> some quote", "> more quote", "`inline code`", "```\nblock code\nmore code\n```", "@alice: :open_mouth:", ], }, { "blocks": [ { "type": "rich_text", "block_id": "D=pkP", "elements": [ { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "number"}], } ], "style": "ordered", "indent": 0, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "list"}], } ], "style": "ordered", "indent": 1, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "third"}], } ], "style": "ordered", "indent": 2, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [ {"type": "text", "text": "end number list"} ], } ], "style": "ordered", "indent": 0, "offset": 1, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "bullet"}], } ], "style": "bullet", "indent": 0, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "list"}], } ], "style": "bullet", "indent": 1, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [{"type": "text", "text": "third"}], } ], "style": "bullet", "indent": 2, "border": 0, }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [ {"type": "text", "text": "end bullet list"} ], } ], "style": "bullet", "indent": 0, "border": 0, }, ], } ], "rendered": [ "1. number", " a. list", " i. third", "2. end number list", "• bullet", " ◦ list", " ▪︎ third", "• end bullet list", ], }, ], ) def test_render_blocks(case): assert wee_slack.unfurl_blocks(case["blocks"]) == case["rendered"]