mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
slack import: Remove unnecessary zerver_realm_skeleton.json.
This was stored as a fixture file under zerver/fixtures, which caused problems, since we don't show that directory under production (as its part of the test system). The simplest emergency fix here would be to just move the file, but when looking at it, it's clear that we don't need or want a fixture file here; we want a Python object, so we just do that. A valuable follow-up improvement to this block would be to create an actual new Realm object (not saved to the database), and dump it the same code we use in the export tool; that should handle the vast majority of these correctly. Fixes #9123.
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
[{
|
||||
"message_retention_days": null,
|
||||
"inline_image_preview": true,
|
||||
"name_changes_disabled": false,
|
||||
"icon_version": 1,
|
||||
"waiting_period_threshold": 0,
|
||||
"email_changes_disabled": false,
|
||||
"deactivated": false,
|
||||
"notifications_stream": null,
|
||||
"restricted_to_domain": false,
|
||||
"show_digest_email": true,
|
||||
"allow_message_editing": true,
|
||||
"description": "Organization imported from Slack!",
|
||||
"default_language": "en",
|
||||
"icon_source": "G",
|
||||
"invite_required": false,
|
||||
"invite_by_admins_only": false,
|
||||
"create_stream_by_admins_only": false,
|
||||
"mandatory_topics": false,
|
||||
"inline_url_embed_preview": true,
|
||||
"message_content_edit_limit_seconds": 600,
|
||||
"authentication_methods": [
|
||||
["Google", true],
|
||||
["Email", true],
|
||||
["GitHub", true],
|
||||
["LDAP", true],
|
||||
["Dev", true],
|
||||
["RemoteUser", true]
|
||||
],
|
||||
"name": "",
|
||||
"org_type": 1,
|
||||
"add_emoji_by_admins_only": false,
|
||||
"date_created": 0.0,
|
||||
"id": 1
|
||||
}]
|
@@ -37,7 +37,7 @@ def rm_tree(path: str) -> None:
|
||||
shutil.rmtree(path)
|
||||
|
||||
def slack_workspace_to_realm(domain_name: str, realm_id: int, user_list: List[ZerverFieldsT],
|
||||
realm_subdomain: str, fixtures_path: str, slack_data_dir: str,
|
||||
realm_subdomain: str, slack_data_dir: str,
|
||||
custom_emoji_list: ZerverFieldsT)-> Tuple[ZerverFieldsT, AddedUsersT,
|
||||
AddedRecipientsT,
|
||||
AddedChannelsT,
|
||||
@@ -54,7 +54,7 @@ def slack_workspace_to_realm(domain_name: str, realm_id: int, user_list: List[Ze
|
||||
"""
|
||||
NOW = float(timezone_now().timestamp())
|
||||
|
||||
zerver_realm = build_zerver_realm(fixtures_path, realm_id, realm_subdomain, NOW)
|
||||
zerver_realm = build_zerver_realm(realm_id, realm_subdomain, NOW)
|
||||
|
||||
realm = dict(zerver_client=[{"name": "populate_db", "id": 1},
|
||||
{"name": "website", "id": 2},
|
||||
@@ -99,17 +99,44 @@ def slack_workspace_to_realm(domain_name: str, realm_id: int, user_list: List[Ze
|
||||
|
||||
return realm, added_users, added_recipient, added_channels, avatars, emoji_url_map
|
||||
|
||||
def build_zerver_realm(fixtures_path: str, realm_id: int, realm_subdomain: str,
|
||||
def build_zerver_realm(realm_id: int, realm_subdomain: str,
|
||||
time: float) -> List[ZerverFieldsT]:
|
||||
|
||||
zerver_realm_skeleton = get_data_file(fixtures_path + 'zerver_realm_skeleton.json')
|
||||
|
||||
zerver_realm_skeleton[0]['id'] = realm_id
|
||||
zerver_realm_skeleton[0]['string_id'] = realm_subdomain # subdomain / short_name of realm
|
||||
zerver_realm_skeleton[0]['name'] = realm_subdomain
|
||||
zerver_realm_skeleton[0]['date_created'] = time
|
||||
|
||||
return zerver_realm_skeleton
|
||||
return [{
|
||||
"message_retention_days": None,
|
||||
"inline_image_preview": True,
|
||||
"name_changes_disabled": False,
|
||||
"icon_version": 1,
|
||||
"waiting_period_threshold": 0,
|
||||
"email_changes_disabled": False,
|
||||
"deactivated": False,
|
||||
"notifications_stream": None,
|
||||
"restricted_to_domain": False,
|
||||
"show_digest_email": True,
|
||||
"allow_message_editing": True,
|
||||
"description": "Organization imported from Slack!",
|
||||
"default_language": "en",
|
||||
"icon_source": "G",
|
||||
"invite_required": True,
|
||||
"invite_by_admins_only": False,
|
||||
"create_stream_by_admins_only": False,
|
||||
"mandatory_topics": False,
|
||||
"inline_url_embed_preview": True,
|
||||
"message_content_edit_limit_seconds": 600,
|
||||
"authentication_methods": [
|
||||
["Google", True],
|
||||
["Email", True],
|
||||
["GitHub", True],
|
||||
["LDAP", True],
|
||||
["Dev", True],
|
||||
["RemoteUser", True]
|
||||
],
|
||||
"name": realm_subdomain,
|
||||
"string_id": realm_subdomain,
|
||||
"org_type": 1,
|
||||
"add_emoji_by_admins_only": False,
|
||||
"id": realm_id,
|
||||
"date_created": time,
|
||||
}]
|
||||
|
||||
def build_realmemoji(custom_emoji_list: ZerverFieldsT,
|
||||
realm_id: int) -> Tuple[List[ZerverFieldsT],
|
||||
@@ -836,6 +863,7 @@ def build_zerver_usermessage(zerver_usermessage: List[ZerverFieldsT], usermessag
|
||||
def do_convert_data(slack_zip_file: str, output_dir: str, token: str, threads: int=6) -> None:
|
||||
# Subdomain is set by the user while running the import command
|
||||
realm_subdomain = ""
|
||||
realm_id = 0
|
||||
domain_name = settings.EXTERNAL_HOST
|
||||
|
||||
slack_data_dir = slack_zip_file.replace('.zip', '')
|
||||
@@ -851,11 +879,6 @@ def do_convert_data(slack_zip_file: str, output_dir: str, token: str, threads: i
|
||||
# with zipfile.ZipFile(slack_zip_file, 'r') as zip_ref:
|
||||
# zip_ref.extractall(slack_data_dir)
|
||||
|
||||
script_path = os.path.dirname(os.path.abspath(__file__)) + '/'
|
||||
fixtures_path = script_path + '../fixtures/'
|
||||
|
||||
realm_id = 0
|
||||
|
||||
# We get the user data from the legacy token method of slack api, which is depreciated
|
||||
# but we use it as the user email data is provided only in this method
|
||||
user_list = get_slack_api_data(token, "https://slack.com/api/users.list", "members")
|
||||
@@ -864,7 +887,7 @@ def do_convert_data(slack_zip_file: str, output_dir: str, token: str, threads: i
|
||||
|
||||
realm, added_users, added_recipient, added_channels, avatar_list, \
|
||||
emoji_url_map = slack_workspace_to_realm(domain_name, realm_id, user_list,
|
||||
realm_subdomain, fixtures_path,
|
||||
realm_subdomain,
|
||||
slack_data_dir, custom_emoji_list)
|
||||
|
||||
message_json, uploads_list, zerver_attachment = convert_slack_workspace_messages(
|
||||
|
@@ -92,11 +92,10 @@ class SlackImporter(ZulipTestCase):
|
||||
self.assertEqual(invalid.exception.args, ('Something went wrong. Please try again!',),)
|
||||
|
||||
def test_build_zerver_realm(self) -> None:
|
||||
fixtures_path = os.path.dirname(os.path.abspath(__file__)) + '/../fixtures/'
|
||||
realm_id = 2
|
||||
realm_subdomain = "test-realm"
|
||||
time = float(timezone_now().timestamp())
|
||||
test_realm = build_zerver_realm(fixtures_path, realm_id, realm_subdomain, time)
|
||||
test_realm = build_zerver_realm(realm_id, realm_subdomain, time)
|
||||
test_zerver_realm_dict = test_realm[0]
|
||||
|
||||
self.assertEqual(test_zerver_realm_dict['id'], realm_id)
|
||||
@@ -323,7 +322,7 @@ class SlackImporter(ZulipTestCase):
|
||||
realm_id = 1
|
||||
user_list = [] # type: List[Dict[str, Any]]
|
||||
realm, added_users, added_recipient, added_channels, avatar_list, em = slack_workspace_to_realm(
|
||||
'testdomain', realm_id, user_list, 'test-realm', './fixtures', './random_path', {})
|
||||
'testdomain', realm_id, user_list, 'test-realm', './random_path', {})
|
||||
test_zerver_realmdomain = [{'realm': realm_id, 'allow_subdomains': False,
|
||||
'domain': 'testdomain', 'id': realm_id}]
|
||||
# Functioning already tests in helper functions
|
||||
|
Reference in New Issue
Block a user