async def test_slackmarkup(self): s = slack.Slack(None, name='test') m = slack.SlackMessage(s, {'type': 'message', 'channel': 'foo'}) Ø = frozenset() self.assertEqual([(Ø, '')], m.slackmarkup(None, Ø)) self.assertEqual([(Ø, '<&>')], m.slackmarkup('<&>', Ø)) self.assertEqual( [ (Ø, ''), ({'bold'}, 'foo'), (Ø, '') ], m.slackmarkup('<|foo>', Ø)) await s.incoming({ 'type': 'team_join', 'user': {'id': 'USER', 'name': 'user'}, }) self.assertEqual( [ (Ø, ''), ({'bold'}, '@user'), (Ø, '') ], m.slackmarkup('<@USER>', Ø)) self.assertEqual( [ (Ø, ''), ({'bold'}, 'FOO'), (Ø, '') ], m.slackmarkup('<FOO>', Ø))
def test___init___0(self): m = slack.SlackMessage( slack.Slack(context.Context(), slackname='test'), { 'type': 'message', 'channel': 'foo', 'ts': 0.0, }) os.environ['TZ'] = 'GMT' self.assertEqual(str(m), '00:00 slack.test; foo\n') self.assertEqual( repr(m), '<SlackMessage 0.0 <SlackAddress slack.test ?, foo> 0 chars>')
async def test_react_add_remove(self): s = slack.Slack(None, name='test') m = slack.SlackMessage(s, {'type': 'message', 'channel': 'foo'}) o = object() m.react = Mock(return_value=mocks.promise()) await m.add_reaction(o) m.react.assert_called_with(o, 'reactions.add') m.react = Mock(return_value=mocks.promise()) await m.remove_reaction(o) m.react.assert_called_with(o, 'reactions.remove')
async def test_edit_message(self): s = slack.Slack(None, name='test') m = slack.SlackMessage( s, {'type': 'message', 'channel': 'foo', 'ts': 0.0}) window = Mock() window.cursor = None window.read_string.return_value = mocks.promise('foo') with self.assertRaises(Exception): await m.edit_message(window) s.method = Mock(return_value=mocks.promise({'ok': True})) window.read_string.return_value = mocks.promise('\nfoo') await m.edit_message(window) window.read_string.assert_called() s.method.assert_called_with( 'chat.update', channel='foo', ts=0.0, text='foo')
async def test_react(self): s = slack.Slack(None, name='test') s.emoji = {} m = slack.SlackMessage( s, {'type': 'message', 'channel': 'foo', 'ts': 0.0}) window = Mock() window.read_oneof.return_value = mocks.promise('foo') await m.react(window, 'reactions.add') window.read_oneof.assert_called() m.data['reactions'] = [{'name': 'star'}] window.read_oneof.return_value = mocks.promise('star') s.method = Mock(return_value=mocks.promise({'ok': True})) await m.react(window, 'reactions.add') self.assertEqual(['star'], s.used_emoji) s.method.assert_called_with( 'reactions.add', name='star', channel='foo', timestamp=0.0)
async def test___init___1(self): s = slack.Slack(None, name='test') await s.incoming({ 'type': 'team_join', 'user': {'id': 'USER', 'name': 'user'}, }) await s.incoming({ 'type': 'channel_created', 'channel': { 'id': 'CHANNEL', 'name': 'channel', 'is_member': True}, }) await s.incoming({ 'type': 'im_created', 'channel': { 'id': 'IM', 'user': '******'}, }) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': '******', 'type': 'message', 'text': None, 'channel': 'CHANNEL', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\n', str(m)) m = slack.SlackMessage(s, { 'ts': 0.0, 'bot_id': 'USER', 'type': 'message', 'text': None, 'channel': 'CHANNEL', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\n', str(m)) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': {'id': 'USER'}, 'type': 'message', 'text': 'text', 'channel': 'CHANNEL', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\ntext', str(m)) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': '******', 'type': 'message', 'text': 'text<bar|foo>text', 'channel': 'CHANNEL', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\ntextfootext', str(m)) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': '******', 'type': 'message', 'text': '<@USER>\n<#CHANNEL>\n<foo>', 'channel': 'CHANNEL', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\nuser\n#channel\nfoo', str(m)) self.assertEqual('test; #channel', m.followup()) self.assertEqual( filters.And( filters.Compare('==', 'backend', 'test'), filters.Compare('==', 'channel', '#channel'), filters.Compare('==', 'sender', 'test; user'), ), m.filter(1)) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': '******', 'type': 'message', 'text': 'foo', 'channel': 'IM', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\nfoo', str(m)) self.assertTrue(m.personal) self.assertEqual('test; user', m.followup()) m = slack.SlackMessage(s, { 'ts': 0.0, 'user': '******', 'type': 'presence_change', 'presence': 'out', }) self.assertEqual('test; user', str(m.sender)) self.assertEqual('00:00 test; user\nuser is out', str(m)) self.assertTrue(m.noise) self.assertEqual('test; user', m.followup())