Esempio n. 1
0
    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)
Esempio n. 2
0
    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()
Esempio n. 3
0
    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)
Esempio n. 4
0
    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()
Esempio n. 5
0
    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')
Esempio n. 6
0
    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')
Esempio n. 7
0
    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])
Esempio n. 8
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)
Esempio n. 9
0
    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')
Esempio n. 10
0
    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)
Esempio n. 11
0
    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()
Esempio n. 12
0
def fetch_data(args):
    """Fetch and store data"""
    slack = client.Client(args)
    slack.update()
Esempio n. 13
0
def generate_raport(args):
    """Generate logs"""
    slack = client.Client(args)
    slack.generate_history()
Esempio n. 14
0
 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)
Esempio n. 15
0
 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)