mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 14:35:27 +00:00
import: Add slack import files in zerver/data_import directory.
This commit is contained in:
2
mypy.ini
2
mypy.ini
@@ -397,8 +397,6 @@ strict_optional = False
|
||||
strict_optional = False
|
||||
[mypy-zerver.tornado.websocket_client]
|
||||
strict_optional = False
|
||||
[mypy-zerver.lib.slack_message_conversion]
|
||||
strict_optional = False
|
||||
[mypy-zerver.views.registration]
|
||||
strict_optional = False
|
||||
|
||||
|
||||
@@ -81,7 +81,6 @@ not_yet_fully_covered = {
|
||||
'zerver/lib/profile.py',
|
||||
'zerver/lib/queue.py',
|
||||
'zerver/lib/rate_limiter.py',
|
||||
'zerver/lib/slack_data_to_zulip_data.py',
|
||||
'zerver/lib/sqlalchemy_utils.py',
|
||||
'zerver/lib/storage.py',
|
||||
'zerver/lib/str_utils.py',
|
||||
@@ -97,6 +96,8 @@ not_yet_fully_covered = {
|
||||
'zerver/lib/api_test_helpers.py',
|
||||
# Experimenatal
|
||||
'zerver/lib/widget.py',
|
||||
# Data import files
|
||||
'zerver/data_import/slack.py',
|
||||
# Webhook integrations with incomplete coverage
|
||||
'zerver/webhooks/beanstalk/view.py',
|
||||
'zerver/webhooks/bitbucket2/view.py',
|
||||
|
||||
0
zerver/data_import/__init__.py
Normal file
0
zerver/data_import/__init__.py
Normal file
@@ -19,7 +19,7 @@ from django.forms.models import model_to_dict
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
from zerver.forms import check_subdomain_available
|
||||
from zerver.models import Reaction, RealmEmoji, Realm, UserProfile
|
||||
from zerver.lib.slack_message_conversion import convert_to_zulip_markdown, \
|
||||
from zerver.data_import.slack_message_conversion import convert_to_zulip_markdown, \
|
||||
get_user_full_name
|
||||
from zerver.lib.parallel import run_parallel
|
||||
from zerver.lib.avatar_hash import user_avatar_path_from_ids
|
||||
@@ -1,5 +1,5 @@
|
||||
import re
|
||||
from typing import Any, Dict, Tuple, List
|
||||
from typing import Any, Dict, Tuple, List, Optional
|
||||
|
||||
# stubs
|
||||
ZerverFieldsT = Dict[str, Any]
|
||||
@@ -113,10 +113,10 @@ def convert_to_zulip_markdown(text: str, users: List[ZerverFieldsT],
|
||||
return text, mentioned_users_id, message_has_link
|
||||
|
||||
def get_user_mentions(token: str, users: List[ZerverFieldsT],
|
||||
added_users: AddedUsersT) -> Tuple[str, int]:
|
||||
added_users: AddedUsersT) -> Tuple[str, Optional[int]]:
|
||||
slack_usermention_match = re.search(SLACK_USERMENTION_REGEX, token, re.VERBOSE)
|
||||
short_name = slack_usermention_match.group(4)
|
||||
slack_id = slack_usermention_match.group(2)
|
||||
short_name = slack_usermention_match.group(4) # type: ignore # slack_usermention_match exists and is not None
|
||||
slack_id = slack_usermention_match.group(2) # type: ignore # slack_usermention_match exists and is not None
|
||||
for user in users:
|
||||
if (user['id'] == slack_id and user['name'] == short_name and short_name) or \
|
||||
(user['id'] == slack_id and short_name is None):
|
||||
@@ -8,7 +8,7 @@ from typing import Any
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandParser, CommandError
|
||||
|
||||
from zerver.lib.slack_data_to_zulip_data import do_convert_data
|
||||
from zerver.data_import.slack import do_convert_data
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = """Convert the Slack data into Zulip data format."""
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
from django.conf import settings
|
||||
from django.utils.timezone import now as timezone_now
|
||||
|
||||
from zerver.lib.slack_data_to_zulip_data import (
|
||||
from zerver.data_import.slack import (
|
||||
rm_tree,
|
||||
get_slack_api_data,
|
||||
build_zerver_realm,
|
||||
@@ -123,7 +123,7 @@ class SlackImporter(ZulipTestCase):
|
||||
self.assertEqual(get_user_timezone(user_timezone_none), "America/New_York")
|
||||
self.assertEqual(get_user_timezone(user_no_timezone), "America/New_York")
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.get_data_file")
|
||||
@mock.patch("zerver.data_import.slack.get_data_file")
|
||||
def test_users_to_zerver_userprofile(self, mock_get_data_file: mock.Mock) -> None:
|
||||
custom_profile_field_user1 = {"Xf06054BBB": {"value": "random1"},
|
||||
"Xf023DSCdd": {"value": "employee"}}
|
||||
@@ -251,7 +251,7 @@ class SlackImporter(ZulipTestCase):
|
||||
zerver_subscription[3]['recipient'])
|
||||
self.assertEqual(zerver_subscription[1]['pin_to_top'], False)
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.get_data_file")
|
||||
@mock.patch("zerver.data_import.slack.get_data_file")
|
||||
def test_channels_to_zerver_stream(self, mock_get_data_file: mock.Mock) -> None:
|
||||
|
||||
added_users = {"U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5}
|
||||
@@ -321,10 +321,10 @@ class SlackImporter(ZulipTestCase):
|
||||
self.assertEqual(zerver_stream[2]['id'],
|
||||
test_added_channels[zerver_stream[2]['name']][1])
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.build_zerver_realm", return_value=[{}])
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.users_to_zerver_userprofile",
|
||||
@mock.patch("zerver.data_import.slack.build_zerver_realm", return_value=[{}])
|
||||
@mock.patch("zerver.data_import.slack.users_to_zerver_userprofile",
|
||||
return_value=[[], [], {}, [], []])
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.channels_to_zerver_stream",
|
||||
@mock.patch("zerver.data_import.slack.channels_to_zerver_stream",
|
||||
return_value=[[], [], {}, [], [], {}])
|
||||
def test_slack_workspace_to_realm(self, mock_channels_to_zerver_stream: mock.Mock,
|
||||
mock_users_to_zerver_userprofile: mock.Mock,
|
||||
@@ -385,7 +385,7 @@ class SlackImporter(ZulipTestCase):
|
||||
self.assertEqual(zerver_usermessage[3]['id'], 3)
|
||||
self.assertEqual(zerver_usermessage[3]['message'], message_id)
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.build_zerver_usermessage", return_value = 2)
|
||||
@mock.patch("zerver.data_import.slack.build_zerver_usermessage", return_value = 2)
|
||||
def test_channel_message_to_zerver_message(self, mock_build_zerver_usermessage: mock.Mock) -> None:
|
||||
|
||||
user_data = [{"id": "U066MTL5U", "name": "john doe", "deleted": False, "real_name": "John"},
|
||||
@@ -462,8 +462,8 @@ class SlackImporter(ZulipTestCase):
|
||||
self.assertEqual(zerver_message[0]['sender'], 43)
|
||||
self.assertEqual(zerver_message[3]['sender'], 24)
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.channel_message_to_zerver_message")
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.get_all_messages")
|
||||
@mock.patch("zerver.data_import.slack.channel_message_to_zerver_message")
|
||||
@mock.patch("zerver.data_import.slack.get_all_messages")
|
||||
def test_convert_slack_workspace_messages(self, mock_get_all_messages: mock.Mock,
|
||||
mock_message: mock.Mock) -> None:
|
||||
os.makedirs('var/test-slack-import', exist_ok=True)
|
||||
@@ -504,12 +504,12 @@ class SlackImporter(ZulipTestCase):
|
||||
|
||||
self.assertEqual(test_reactions, reactions)
|
||||
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.process_uploads", return_value = [])
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.build_zerver_attachment",
|
||||
@mock.patch("zerver.data_import.slack.process_uploads", return_value = [])
|
||||
@mock.patch("zerver.data_import.slack.build_zerver_attachment",
|
||||
return_value = [])
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.build_avatar_url")
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.build_avatar")
|
||||
@mock.patch("zerver.lib.slack_data_to_zulip_data.get_slack_api_data")
|
||||
@mock.patch("zerver.data_import.slack.build_avatar_url")
|
||||
@mock.patch("zerver.data_import.slack.build_avatar")
|
||||
@mock.patch("zerver.data_import.slack.get_slack_api_data")
|
||||
def test_slack_import_to_existing_database(self, mock_get_slack_api_data: mock.Mock,
|
||||
mock_build_avatar_url: mock.Mock,
|
||||
mock_build_avatar: mock.Mock,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.conf import settings
|
||||
|
||||
from zerver.lib.slack_message_conversion import (
|
||||
from zerver.data_import.slack_message_conversion import (
|
||||
convert_to_zulip_markdown,
|
||||
get_user_full_name
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user