mirror of
https://github.com/gryf/slack-backup.git
synced 2025-12-17 11:30:25 +01:00
381 lines
18 KiB
Python
381 lines
18 KiB
Python
import unittest
|
|
from unittest.mock import MagicMock
|
|
|
|
from slack_backup import client
|
|
from slack_backup import objects
|
|
|
|
CHANNELS = {"ok": True,
|
|
"channels": [{"id": "C00000000",
|
|
"name": "somechannel",
|
|
"is_channel": True,
|
|
"created": 1479147929,
|
|
"creator": "UAAAAAAAA",
|
|
"is_archived": False,
|
|
"is_general": False,
|
|
"is_member": True,
|
|
"members": ["UAAAAAAAA",
|
|
"UBBBBBBBB",
|
|
"UCCCCCCCC"],
|
|
"topic": {"value": "",
|
|
"creator": "",
|
|
"last_set": 0},
|
|
"purpose": {"value": "",
|
|
"creator": "",
|
|
"last_set": 0},
|
|
"num_members": 7},
|
|
{"id": "C00000001",
|
|
"name": "general",
|
|
"is_channel": True,
|
|
"created": 1416042849,
|
|
"creator": "USLACKBOT",
|
|
"is_archived": False,
|
|
"is_general": True,
|
|
"is_member": True,
|
|
"members": ["UAAAAAAAA",
|
|
"UBBBBBBBB",
|
|
"UCCCCCCCC"],
|
|
"topic": {"value": "",
|
|
"creator": "",
|
|
"last_set": 0},
|
|
"purpose": {"value": "This channel is for team-wide"
|
|
" communication and "
|
|
"announcements. All team "
|
|
"members are in this channel.",
|
|
"creator": "",
|
|
"last_set": 0},
|
|
"num_members": 14}]}
|
|
|
|
PROFILES = [{'always_active': False,
|
|
'api_app_id': '',
|
|
'avatar_hash': '167c4585f3b5',
|
|
'bot_id': 'B34RR91SQ',
|
|
'image_1024': 'https://bla.com/2016-11-19/12345_72.png',
|
|
'image_192': 'https://bla.com/2016-11-19/12345_72.png',
|
|
'image_24': 'https://bla.com/2016-11-19/12345_24.png',
|
|
'image_32': 'https://bla.com/2016-11-19/12345_32.png',
|
|
'image_48': 'https://bla.com/2016-11-19/12345_48.png',
|
|
'image_512': 'https://bla.com/2016-11-19/12345_72.png',
|
|
'image_72': 'https://bla.com/2016-11-19/12345_72.png',
|
|
'image_original': 'https://bla.com/2016-11-19/12345_original.png',
|
|
'real_name': '',
|
|
'real_name_normalized': '',
|
|
'title': 'all your base are belongs to us'},
|
|
{'avatar_hash': 'bab01f158419',
|
|
'email': 'name1@some.mail.com',
|
|
'first_name': 'name',
|
|
'image_1024': 'https://bla.com/2016-11-19/23456_512.png',
|
|
'image_192': 'https://bla.com/2016-11-19/23456_192.png',
|
|
'image_24': 'https://bla.com/2016-11-19/23456_24.png',
|
|
'image_32': 'https://bla.com/2016-11-19/23456_32.png',
|
|
'image_48': 'https://bla.com/2016-11-19/23456_48.png',
|
|
'image_512': 'https://bla.com/2016-11-19/23456_512.png',
|
|
'image_72': 'https://bla.com/2016-11-19/23456_72.png',
|
|
'image_original': 'https://bla.com/2016-11-19/23456_original.png',
|
|
'last_name': 'lastname',
|
|
'real_name': 'name lastname',
|
|
'real_name_normalized': 'name lastname'},
|
|
{'avatar_hash': '398907b00c64',
|
|
'email': 'name2@@foobar.mail.net',
|
|
'first_name': 'othername',
|
|
'image_1024': 'https://bla.com/2016-11-19/34567_72.gif',
|
|
'image_192': 'https://bla.com/2016-11-19/34567_72.gif',
|
|
'image_24': 'https://bla.com/2016-11-19/34567_24.gif',
|
|
'image_32': 'https://bla.com/2016-11-19/34567_32.gif',
|
|
'image_48': 'https://bla.com/2016-11-19/34567_48.gif',
|
|
'image_512': 'https://bla.com/2016-11-19/34567_72.gif',
|
|
'image_72': 'https://bla.com/2016-11-19/34567_72.gif',
|
|
'image_original': 'https://bla.com/2016-11-19/34567_original.gif',
|
|
'last_name': 'totallylast',
|
|
'phone': '',
|
|
'real_name': 'othername totallylast',
|
|
'real_name_normalized': 'othername totallylast',
|
|
'skype': '',
|
|
'title': 'blah & blah'},
|
|
{'avatar_hash': 'sv1454671952',
|
|
'fields': None,
|
|
'first_name': 'slackbot',
|
|
'image_192': 'https://bla.com/65f9/img/slackbot_192.png',
|
|
'image_24': 'https://bla.com/181c/img/slackbot_24.png',
|
|
'image_32': 'https://bla.com/0fac/slackbot/assets/service_32.png',
|
|
'image_48': 'https://bla.com/4fac/slackbot/assets/service_48.png',
|
|
'image_512': 'https://bla.com/1803/img/slackbot_512.png',
|
|
'image_72': 'https://bla.com/1780/img/slackbot_72.png',
|
|
'last_name': '',
|
|
'real_name': 'slackbot',
|
|
'real_name_normalized': 'slackbot'}]
|
|
|
|
USERS = {'cache_ts': 1479577519,
|
|
'ok': True,
|
|
'members': [{'color': 'd58247',
|
|
'deleted': False,
|
|
'id': 'UAAAAAAAA',
|
|
'is_admin': False,
|
|
'is_bot': True,
|
|
'is_owner': False,
|
|
'is_primary_owner': False,
|
|
'is_restricted': False,
|
|
'is_ultra_restricted': False,
|
|
'name': 'borg',
|
|
'profile': PROFILES[0],
|
|
'real_name': '',
|
|
'status': None,
|
|
'team_id': 'T0000TEST',
|
|
'tz': None,
|
|
'tz_label': 'Pacific Standard Time',
|
|
'tz_offset': -28800},
|
|
{'color': '4bbe2e',
|
|
'deleted': False,
|
|
'has_2fa': False,
|
|
'id': 'UBBBBBBBB',
|
|
'is_admin': True,
|
|
'is_bot': False,
|
|
'is_owner': True,
|
|
'is_primary_owner': False,
|
|
'is_restricted': False,
|
|
'is_ultra_restricted': False,
|
|
'name': 'name1',
|
|
'profile': PROFILES[1],
|
|
'real_name': 'name lastname',
|
|
'status': None,
|
|
'team_id': 'T0000TEST',
|
|
'tz': 'America/Los_Angeles',
|
|
'tz_label': 'Pacific Standard Time',
|
|
'tz_offset': -28800},
|
|
{'color': 'e96699',
|
|
'deleted': False,
|
|
'has_2fa': False,
|
|
'id': 'UCCCCCCCC',
|
|
'is_admin': False,
|
|
'is_bot': False,
|
|
'is_owner': False,
|
|
'is_primary_owner': False,
|
|
'is_restricted': False,
|
|
'is_ultra_restricted': False,
|
|
'name': 'name2',
|
|
'profile': PROFILES[2],
|
|
'real_name': 'othername totallylast',
|
|
'status': None,
|
|
'team_id': 'T0000TEST',
|
|
'tz': 'America/Los_Angeles',
|
|
'tz_label': 'Pacific Standard Time',
|
|
'tz_offset': -28800},
|
|
{'color': '757575',
|
|
'deleted': False,
|
|
'id': 'USLACKBOT',
|
|
'is_admin': False,
|
|
'is_bot': False,
|
|
'is_owner': False,
|
|
'is_primary_owner': False,
|
|
'is_restricted': False,
|
|
'is_ultra_restricted': False,
|
|
'name': 'slackbot',
|
|
'profile': PROFILES[3],
|
|
'real_name': 'slackbot',
|
|
'status': None,
|
|
'team_id': 'T0000TEST',
|
|
'tz': None,
|
|
'tz_label': 'Pacific Standard Time',
|
|
'tz_offset': -28800}]}
|
|
|
|
MSG2 = {"type": "message",
|
|
"user": "UCCCCCCCC",
|
|
"text": "Pellentesque molestie nunc id enim. Etiam mollis tempus "
|
|
"neque. Duis. per conubia nostra, per",
|
|
"ts": "1479505026.000002"}
|
|
|
|
MSGS = {'messages': [{"type": "message",
|
|
"user": "UAAAAAAAA",
|
|
"text": "Class aptent taciti sociosqu ad litora torquent"
|
|
" per conubia nostra, per",
|
|
"ts": "1479501074.000032"},
|
|
{"reactions": [{"name": "+1",
|
|
"users": ["UBBBBBBBB", "UCCCCCCCC"],
|
|
"count": 2}],
|
|
"attachments": [{"service_icon": "https://bla/icon.png",
|
|
"title": "Nulla sollicitudin",
|
|
"thumb_width": 400,
|
|
"thumb_height": 400,
|
|
"from_url": "https://bla",
|
|
"service_name": "Bla",
|
|
"fallback": "Bla: Nulla sollicitudin",
|
|
"title_link": "https://bla/nulla",
|
|
"text": "Bla - bla bla",
|
|
"thumb_url": "https://avatars/1.gif",
|
|
"id": 1}],
|
|
"type": "message",
|
|
"user": "UCCCCCCCC",
|
|
"text": "Mauris ut metus sit amet mi cursus commodo. "
|
|
"Morbi congue mauris ac sapien. "
|
|
"https://bla/nulla",
|
|
"ts": "1479493038.000029"},
|
|
{"subtype": "pinned_item",
|
|
"item": {"mode": "hosted",
|
|
"size": 2949,
|
|
"comments_count": 1,
|
|
"timestamp": 1479146954,
|
|
"url_private_download": "https://files.slack."
|
|
"com/files-pri/bin.bin",
|
|
"is_external": False,
|
|
"external_type": "",
|
|
"username": "",
|
|
"display_as_bot": False,
|
|
"pinned_to": ["C00000001"],
|
|
"permalink_public": "https://slack-files.com/"
|
|
"hash",
|
|
"channels": ["C00000001"],
|
|
"title": "binary.prg",
|
|
"ims": [],
|
|
"url_private": "https://files.slack.com/hash/"
|
|
"binary.prg",
|
|
"groups": [],
|
|
"filetype": "binary",
|
|
"user": "UAAAAAAAA",
|
|
"initial_comment": {"is_intro": True,
|
|
"user": "UAAAAAAAA",
|
|
"channel": "",
|
|
"timestamp": 1479146954,
|
|
"created": 1479146954,
|
|
"comment": "sample image",
|
|
"id": "Fc331R6CNT"},
|
|
"permalink": "https://bla.slack.com/files/borg/"
|
|
"F331R60LX/binary.prg",
|
|
"name": "Conan.hires.prg",
|
|
"num_stars": 1,
|
|
"public_url_shared": False,
|
|
"is_public": True,
|
|
"mimetype": "application/octet-stream",
|
|
"created": 1479146954,
|
|
"id": "F331R60LX",
|
|
"pretty_type": "Binary",
|
|
"editable": False},
|
|
"item_type": "F",
|
|
"type": "message",
|
|
"user": "UAAAAAAAA",
|
|
"text": "<@UAAAAAAAA|borg> pinned their Binary "
|
|
"<https://bla.slack.com/files/borg/F331R60LX/"
|
|
"binary.prg|Binary.prg> to this channel.",
|
|
"ts": "1479146975.000197"},
|
|
{"type": "message",
|
|
"subtype": "channel_join",
|
|
"user": "UAAAAAAAA",
|
|
"text": "<@UAAAAAAAA|borg> has joined the channel",
|
|
"ts": "1479108214.000002"},
|
|
{"display_as_bot": False,
|
|
"subtype": "file_share",
|
|
"username": "<@UCCCCCCCC|name2>",
|
|
"file": {"thumb_960": "https://files.slack.com/files-tmb"
|
|
"/hash/screenshot_960.png",
|
|
"user": "UCCCCCCCC",
|
|
"size": 77222,
|
|
"thumb_1024_h": 754,
|
|
"timestamp": 1479407569,
|
|
"url_private_download": "https://files.slack.co"
|
|
"m/files-pri/hsh/downlo"
|
|
"ad/screenshot.png",
|
|
"thumb_360": "https://files.slack.com/files-tmb"
|
|
"/hash/screenshot_360.png",
|
|
"username": "",
|
|
"external_type": "",
|
|
"thumb_64": "https://files.slack.com/files-tmb/"
|
|
"hash/screenshot_64.png",
|
|
"created": 1479407569,
|
|
"ims": [],
|
|
"groups": [],
|
|
"filetype": "png",
|
|
"thumb_1024": "https://files.slack.com/files-"
|
|
"tmb/hash/screenshot_1024.png",
|
|
"original_w": 1193,
|
|
"name": "Screenshot.png",
|
|
"thumb_360_h": 265,
|
|
"is_public": True,
|
|
"thumb_960_h": 707,
|
|
"original_h": 878,
|
|
"mimetype": "image/png",
|
|
"id": "F3405RRB5",
|
|
"pretty_type": "PNG",
|
|
"editable": False,
|
|
"thumb_960_w": 960,
|
|
"thumb_80": "https://files.slack.com/files-tmb/"
|
|
"hash/screenshot_80.png",
|
|
"comments_count": 0,
|
|
"image_exif_rotation": 1,
|
|
"thumb_160": "https://files.slack.com/files-tmb"
|
|
"/hash/screenshot_160.png",
|
|
"thumb_480_w": 480,
|
|
"is_external": False,
|
|
"display_as_bot": False,
|
|
"thumb_720_h": 530,
|
|
"channels": ["C00000001"],
|
|
"title": "Screenshot.png",
|
|
"thumb_480": "https://files.slack.com/files-tmb"
|
|
"/hash/screenshot_480.png",
|
|
"url_private": "https://files.slack.com/files-"
|
|
"pri/hsh/screenshot.png",
|
|
"mode": "hosted",
|
|
"thumb_1024_w": 1024,
|
|
"permalink": "https://esm64.slack.com/files/"
|
|
"name2/F3405RRB5/screenshot.png",
|
|
"thumb_480_h": 353,
|
|
"public_url_shared": False,
|
|
"thumb_720": "https://files.slack.com/files-tmb"
|
|
"/hash/screenshot_720.png",
|
|
"thumb_360_w": 360,
|
|
"permalink_public": "https://slack-files.com/"
|
|
"hsh-7dbb96b758",
|
|
"thumb_720_w": 720},
|
|
"type": "message",
|
|
"user": "UCCCCCCCC",
|
|
"bot_id": None,
|
|
"text": "<@UCCCCCCCC|name2> uploaded a file: "
|
|
"<https://esm64.slack.com/files/name2/F3405RRB5/"
|
|
"screenshot.png|Screenshot.png>",
|
|
"ts": "1478107371.000052",
|
|
"upload": True}],
|
|
"ok": True,
|
|
"latest": "1479501075.000020",
|
|
"has_more": False}
|
|
|
|
|
|
class TestApiCalls(unittest.TestCase):
|
|
|
|
def setup(self):
|
|
print("asd")
|
|
|
|
def test_channels_list(self):
|
|
self.assertTrue(1)
|
|
|
|
def test_users_list(self):
|
|
self.assertTrue(1)
|
|
|
|
def test_channels_history(self):
|
|
self.assertTrue(1)
|
|
|
|
|
|
class TestClient(unittest.TestCase):
|
|
|
|
def test_update_users(self):
|
|
cl = client.Client("token string")
|
|
cl.slack.api_call = MagicMock(return_value=USERS)
|
|
cl.update_users()
|
|
users = cl.session.query(objects.User).all()
|
|
self.assertEqual(len(users), 4)
|
|
self.assertEqual(users[0].id, 1)
|
|
|
|
cl.update_users()
|
|
users = cl.session.query(objects.User).all()
|
|
self.assertEqual(len(users), 4)
|
|
self.assertEqual(users[0].id, 1)
|
|
self.assertEqual(users[0].slackid, 'UAAAAAAAA')
|
|
|
|
|
|
class TestMessage(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.cl = client.Client('token string')
|
|
self.cl.slack.api_call = MagicMock()
|
|
|
|
def test_create_message(self):
|
|
|
|
cl = client.Client("token string")
|
|
cl.slack.api_call = MagicMock(return_value=MSGS)
|