import wee_slack import pytest slack = wee_slack @pytest.mark.parametrize('case', ( { 'input': "foo", 'output': "foo", }, { 'input': "<@U2147483697|@othernick>: foo", 'output': "@testuser: foo", 'ignore_alt_text': True, }, { 'input': "foo <#C2147483705|#otherchannel> foo", 'output': "foo #otherchannel foo", }, { 'input': "foo <#C2147483705> foo", 'output': "foo #testchan foo", }, { 'input': "url: suffix", 'output': "url: https://example.com (example) suffix", }, { 'input': "url: suffix", 'output': "url: https://example.com (example with spaces) suffix", }, { 'input': "<@U2147483697|@othernick> multiple unfurl ", 'output': "@othernick multiple unfurl https://example.com (example with spaces)", }, )) def test_unfurl_refs(myservers, mychannels, myusers, case): slack.servers = myservers slack.channels = mychannels slack.users = myusers slack.message_cache = {} slack.servers[0].users = myusers print mychannels[0].identifier assert slack.unfurl_refs(case['input'], ignore_alt_text=case.get('ignore_alt_text', False)) == case['output']