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 -italic]><[color -bold]> "
"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",
],
},
{
"blocks": [
{
"type": "rich_text",
"block_id": "usQpu",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "test ",
"style": {"code": True},
},
{
"type": "link",
"url": "http://asdf.de",
"text": "asdf.de",
"style": {"code": True},
},
{
"type": "text",
"text": " asdf.de:443",
"style": {"code": True},
},
{"type": "text", "text": "\n"},
],
},
{
"type": "rich_text_preformatted",
"elements": [
{"type": "text", "text": "asdf.de\nasdf.de:443"}
],
"border": 0,
},
],
}
],
"rendered": [
"`test asdf.de asdf.de:443`",
"```\nasdf.de\nasdf.de:443\n```",
],
},
{
"blocks": [
{
"type": "rich_text",
"block_id": "vLtn",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "bold ",
"style": {"bold": True},
},
{
"type": "text",
"text": "code ",
"style": {"bold": True, "code": True},
},
{
"type": "text",
"text": "not bold ",
"style": {"code": True},
},
{
"type": "text",
"text": "italic",
"style": {"italic": True, "code": True},
},
{
"type": "text",
"text": " text",
"style": {"italic": True},
},
],
}
],
}
],
"rendered": [
"<[color bold]>*bold `code *<[color -bold]>not bold <[color italic]>_italic` text_<[color -italic]>",
],
},
{
"blocks": [
{
"type": "rich_text",
"block_id": "28L",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "bold and italic combined",
"style": {"bold": True, "italic": True},
}
],
}
],
}
],
"rendered": [
"<[color bold]><[color italic]>*_bold and italic combined_*<[color -italic]><[color -bold]>"
],
},
{
"blocks": [
{
"type": "rich_text",
"block_id": "M23r4",
"elements": [
{
"type": "rich_text_section",
"elements": [{"type": "color", "value": "#FFAA00"}],
}
],
}
],
"rendered": ["#FFAA00 <[color 16755200]>■<[color reset]>"],
},
],
)
def test_render_blocks(case):
assert wee_slack.unfurl_blocks(case["blocks"]) == case["rendered"]