slack importer: Implement changes in script due to zerver_attachment.

This commit is contained in:
Rhea Parekh 2018-02-26 14:46:34 +05:30 committed by Tim Abbott
parent 8e2d930644
commit e62945eb86
2 changed files with 13 additions and 9 deletions

View File

@ -475,11 +475,13 @@ def convert_slack_workspace_messages(slack_data_dir: str, users: List[ZerverFiel
added_users: AddedUsersT, added_recipient: AddedRecipientsT,
added_channels: AddedChannelsT, realm: ZerverFieldsT,
domain_name: str) -> Tuple[ZerverFieldsT,
List[ZerverFieldsT],
List[ZerverFieldsT]]:
"""
Returns:
1. message.json, Converted messages
2. uploads, which is a list of uploads to be mapped in uploads records.json
3. attachment, which is a list of the attachments
"""
# now for message.json
message_json = {}
@ -502,7 +504,7 @@ def convert_slack_workspace_messages(slack_data_dir: str, users: List[ZerverFiel
attachment_id_list = allocate_ids(UserMessage, total_attachments)
id_list = [message_id_list, usermessage_id_list, attachment_id_list]
zerver_message, zerver_usermessage, uploads = channel_message_to_zerver_message(
zerver_message, zerver_usermessage, attachment, uploads = channel_message_to_zerver_message(
realm_id, users, added_users, added_recipient, all_messages,
realm['zerver_subscription'], domain_name, id_list)
@ -511,7 +513,7 @@ def convert_slack_workspace_messages(slack_data_dir: str, users: List[ZerverFiel
message_json['zerver_message'] = zerver_message
message_json['zerver_usermessage'] = zerver_usermessage
return message_json, uploads
return message_json, uploads, attachment
def get_all_messages(slack_data_dir: str, added_channels: AddedChannelsT) -> List[ZerverFieldsT]:
all_messages = [] # type: List[ZerverFieldsT]
@ -561,13 +563,15 @@ def channel_message_to_zerver_message(realm_id: int, users: List[ZerverFieldsT],
zerver_subscription: List[ZerverFieldsT],
domain_name: str,
ids: List[Any]) -> Tuple[List[ZerverFieldsT],
List[ZerverFieldsT],
List[ZerverFieldsT],
List[ZerverFieldsT]]:
"""
Returns:
1. zerver_message, which is a list of the messages
2. zerver_usermessage, which is a list of the usermessages
3. uploads_list, which is a list of uploads to be mapped in uploads records.json
3. zerver_attachment, which is a list of the attachments
4. uploads_list, which is a list of uploads to be mapped in uploads records.json
"""
message_id_count = usermessage_id_count = attachment_id_count = 0
message_id_list, usermessage_id_list, attachment_id_list = ids
@ -643,7 +647,7 @@ def channel_message_to_zerver_message(realm_id: int, users: List[ZerverFieldsT],
zerver_subscription, recipient_id, mentioned_users_id, message_id)
message_id_count += 1
return zerver_message, zerver_usermessage, uploads_list
return zerver_message, zerver_usermessage, zerver_attachment, uploads_list
def get_attachment_path_and_content(fileinfo: ZerverFieldsT, realm_id: int) -> Tuple[str,
str]:
@ -748,7 +752,7 @@ def do_convert_data(slack_zip_file: str, realm_subdomain: str, output_dir: str,
realm, added_users, added_recipient, added_channels, avatar_list = slack_workspace_to_realm(
domain_name, realm_id, user_list, realm_subdomain, fixtures_path, slack_data_dir)
message_json, uploads_list = convert_slack_workspace_messages(
message_json, uploads_list, zerver_attachment = convert_slack_workspace_messages(
slack_data_dir, user_list, realm_id, added_users, added_recipient, added_channels,
realm, domain_name)
@ -758,7 +762,6 @@ def do_convert_data(slack_zip_file: str, realm_subdomain: str, output_dir: str,
os.makedirs(avatar_realm_folder, exist_ok=True)
avatar_records = process_avatars(avatar_list, avatar_folder, realm_id)
zerver_attachment = [] # type: List[ZerverFieldsT]
attachment = {"zerver_attachment": zerver_attachment}
# IO realm.json

View File

@ -432,7 +432,7 @@ class SlackImporter(ZulipTestCase):
zerver_usermessage = [] # type: List[Dict[str, Any]]
zerver_subscription = [] # type: List[Dict[str, Any]]
zerver_message, zerver_usermessage, uploads = channel_message_to_zerver_message(
zerver_message, zerver_usermessage, attachment, uploads = channel_message_to_zerver_message(
1, user_data, added_users, added_recipient, all_messages, zerver_subscription,
'domain', ids)
# functioning already tested in helper function
@ -441,6 +441,7 @@ class SlackImporter(ZulipTestCase):
self.assertEqual(len(zerver_message), 5)
self.assertEqual(uploads, [])
self.assertEqual(attachment, [])
# Message conversion already tested in tests.test_slack_message_conversion
self.assertEqual(zerver_message[0]['content'], '@**Jane**: hey!')
@ -479,8 +480,8 @@ class SlackImporter(ZulipTestCase):
zerver_usermessage = [{'id': 3}, {'id': 5}, {'id': 6}, {'id': 9}]
mock_message.side_effect = [[zerver_message, zerver_usermessage, []]]
message_json, uploads = convert_slack_workspace_messages(
mock_message.side_effect = [[zerver_message, zerver_usermessage, [], []]]
message_json, uploads, zerver_attachment = convert_slack_workspace_messages(
'./random_path', user_list, 2, {}, {}, added_channels, realm, 'domain')
self.assertEqual(message_json['zerver_message'], zerver_message)
self.assertEqual(message_json['zerver_usermessage'], zerver_usermessage)