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\nWith 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",
]),
},
))
def test_unwrap_attachments(case):
result = wee_slack.unwrap_attachments(
case['input_message'], case['input_text_before'])
assert result == case['output']