def test_channels_history(self): cl = client.Client(FakeArgs()) cl.slack.api_call = mock.MagicMock(return_value=USERS) cl.downloader._download = mock.MagicMock(return_value=None) cl.update_users() cl.slack.api_call = mock.MagicMock(return_value=CHANNELS) cl.update_channels() cl.slack.api_call = mock.MagicMock() cl.slack.api_call.side_effect = [MSGS, MSG2, MSG3] channel = cl.q(o.Channel).filter(o.Channel.slackid == "C00000001").one() msg, ts = cl._channels_history(channel, 0) self.assertEqual(len(msg), 6) self.assertEqual(ts, '1479501074.000032') msg, ts = cl._channels_history(channel, ts) self.assertEqual(len(msg), 1) self.assertEqual(ts, '1479505026.000002') msg, ts = cl._channels_history(channel, ts) self.assertEqual(len(msg), 0) self.assertIsNone(ts)
def test_empty_message(self, gu, fd): cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value='aa') cl.session = mock.MagicMock() channel = o.Channel({'name': 'test', 'id': 'C00000001'}) cl._create_message({'type': 'message', 'text': ''}, channel) cl.session.add.assert_not_called()
def test_message_with_reaction(self, gu, fd): cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value='aa') cl.session = mock.MagicMock() channel = o.Channel({'name': 'test', 'id': 'C00000001'}) cl._create_message(MSGS['messages'][1], channel) msg = cl.session.add.call_args[0][0] self.assertEqual(len(msg.attachments), 1) self.assertEqual(len(msg.reactions), 1) self.assertEqual(msg.reactions[0].name, '+1') self.assertFalse(msg.is_starred)
def setUp(self): args = FakeArgs() args.channels = ['general'] self.cl = client.Client(args) self.cl.downloader.authorize = mock.MagicMock() self.cl.slack.api_call = mock.MagicMock(return_value=USERS) self.cl.downloader._download = mock.MagicMock(return_value=None) self.cl.update_users() self.cl.slack.api_call = mock.MagicMock(return_value=CHANNELS) self.cl.update_channels() self.cl.slack.api_call = mock.MagicMock()
def test_update_users(self): cl = client.Client(FakeArgs()) cl.slack.api_call = mock.MagicMock(return_value=USERS) cl.downloader._download = mock.MagicMock(return_value=None) cl.update_users() users = cl.session.query(o.User).all() self.assertEqual(len(users), 4) self.assertEqual(users[0].id, 1) cl.update_users() users = cl.session.query(o.User).all() self.assertEqual(len(users), 4) self.assertEqual(users[0].id, 1) self.assertEqual(users[0].slackid, 'UAAAAAAAA')
def test_file_data(self, md, dl): dl.side_effect = ['some_path'] url = INTERNAL_DATA['files'][0]['url_private_download'] cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value=url) cl.session = mock.MagicMock() msg = o.Message() cl._file_data(msg, INTERNAL_DATA['files'][0]) self.assertIsNotNone(msg.files) self.assertEqual(msg.files[0].filepath, 'some_path')
def test_external_file_upload(self, gu, fd): cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value='aa') cl.session = mock.MagicMock() channel = o.Channel({'name': 'test', 'id': 'C00000001'}) cl._create_message(SHARED, channel) msg = cl.session.add.call_args[0][0] self.assertEqual(len(msg.attachments), 0) self.assertTrue('shared a file' in msg.text) self.assertFalse(msg.is_starred) self.assertEqual(msg.type, 'file_share') fd.assert_called_once_with(msg, SHARED['files'][0])
def test_starred_file_data(self, md, dl): dl.side_effect = ['some_path'] data = copy.deepcopy(INTERNAL_DATA) data['files'][0]['is_starred'] = True url = data['files'][0]['url_private_download'] cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value=url) cl.session = mock.MagicMock() msg = o.Message() cl._file_data(msg, data['files'][0]) self.assertTrue(msg.is_starred)
def test_pinned_message_with_attachments(self, gu, fd): cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value='aa') cl.session = mock.MagicMock() cl._url_file_to_attachment = True channel = o.Channel({'name': 'test', 'id': 'C00000001'}) cl._create_message(PINNED, channel) msg = cl.session.add.call_args[0][0] self.assertEqual(len(msg.attachments), 1) self.assertEqual(msg.text, '<@UAAAAAAAA> pinned a message to this ' 'channel.') self.assertEqual(msg.type, 'pinned_item') self.assertEqual(msg.attachments[0].text, 'the text') self.assertEqual(msg.attachments[0].title, 'Fake service title')
def test_starred_item(self, gu): cl = client.Client(FakeArgs()) cl.downloader._download = mock.MagicMock(return_value='aa') cl.session = mock.MagicMock() channel = o.Channel({'name': 'test', 'id': 'C00000001'}) data = { "type": "message", "user": "******", "text": "test", "ts": "1479501074.000032", "is_starred": True } cl._create_message(data, channel) msg = cl.session.add.call_args[0][0] self.assertEqual(len(msg.attachments), 0) self.assertEqual(msg.text, 'test') self.assertEqual(msg.type, '') self.assertTrue(msg.is_starred)
def test_external_file_data(self, md, dl, uuid): uuid.side_effect = ['aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'] dl.side_effect = ['some_path'] cl = client.Client(FakeArgs()) cl.session = mock.MagicMock() # pretend, that we are authorized cl.downloader._authorized = True msg = o.Message() expexted_line = ('https://docs.google.com/spreadsheets/d/xxx/edit?' 'usp=drivesdk --> ' 'assets/files/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\n') cl._file_data(msg, EXTERNAL_DATA['files'][0]) file_ = cl.session.add.call_args[0][0] self.assertEqual(cl._dldata, [expexted_line]) self.assertEqual(file_.filepath, 'assets/files/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee') dl.assert_not_called()
def fetch_data(args): """Fetch and store data""" slack = client.Client(args) slack.update()
def generate_raport(args): """Generate logs""" slack = client.Client(args) slack.generate_history()
def test_users_list(self): cl = client.Client(FakeArgs()) cl.slack.api_call = mock.MagicMock(return_value=USERS) users = cl._users_list() self.assertListEqual(USERS['members'], users)
def test_channels_list(self): cl = client.Client(FakeArgs()) cl.slack.api_call = mock.MagicMock(return_value=CHANNELS) channels = cl._channels_list() self.assertListEqual(CHANNELS['channels'], channels)