aboutsummaryrefslogblamecommitdiffstats
path: root/_pytest/test_unwrap_attachments.py
blob: aed696c1a7771df35175bab87c51a8f4ee85a882 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14

                                                       











                                           
                      











                                              


                                          





                                           





                                              


                                          





                                           

                                                
                                               
            
                                                       

                             

                                


           


                                           






                                                       

                                





                                           

                                        
                                       


                                

                                    


           

                                           





                                       


                                




                                           



                                                               


                                    












                                              



                                                  










                                              

                                        






                                           
                               


                                           























                                           




                                          

                                   









                                           

                                                  









                                           

                                                  



                                           









                                             

                                   



                                           










                                              


                                                     

           













                                                





                                                              

           



















                                                       





























                                              

                                  
                                                              


                                                         
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):
    wee_slack.config.link_previews = case.get('link_previews')
    result = wee_slack.unwrap_attachments(
        case['input_message'], case['input_text_before'])
    assert result == case['output']