def test_channels_to_zerver_stream(self, mock_get_data_file: mock.Mock) -> None: added_users = { "U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5 } zerver_userprofile = [{'id': 1}, {'id': 8}, {'id': 7}, {'id': 5}] realm_id = 3 channel_data = [{ 'id': "C061A0WJG", 'name': 'random', 'created': '1433558319', 'is_general': False, 'members': ['U061A1R2R', 'U061A5N1G'], 'is_archived': True, 'topic': { 'value': 'random' }, 'purpose': { 'value': 'no purpose' } }, { 'id': "C061A0YJG", 'name': 'general', 'created': '1433559319', 'is_general': False, 'is_archived': False, 'members': ['U061A1R2R', 'U061A5N1G', 'U064KUGRJ'], 'topic': { 'value': 'general' }, 'purpose': { 'value': 'general' } }, { 'id': "C061A0YJP", 'name': 'general1', 'created': '1433559319', 'is_general': False, 'is_archived': False, 'members': ['U061A1R2R'], 'topic': { 'value': 'general channel' }, 'purpose': { 'value': 'For everyone' } }, { 'id': "C061A0HJG", 'name': 'feedback', 'created': '1433558359', 'is_general': False, 'members': ['U061A3E0G'], 'is_archived': False, 'topic': { 'value': '' }, 'purpose': { 'value': '' } }] mock_get_data_file.return_value = channel_data channel_to_zerver_stream_output = channels_to_zerver_stream( './random_path', realm_id, added_users, zerver_userprofile) zerver_defaultstream = channel_to_zerver_stream_output[0] zerver_stream = channel_to_zerver_stream_output[1] added_channels = channel_to_zerver_stream_output[2] zerver_subscription = channel_to_zerver_stream_output[3] zerver_recipient = channel_to_zerver_stream_output[4] added_recipient = channel_to_zerver_stream_output[5] test_added_channels = { 'feedback': ("C061A0HJG", 3), 'general': ("C061A0YJG", 1), 'general1': ("C061A0YJP", 2), 'random': ("C061A0WJG", 0) } test_added_recipient = { 'feedback': 3, 'general': 1, 'general1': 2, 'random': 0 } # zerver defaultstream already tested in helper functions self.assertEqual(zerver_defaultstream, [{ 'id': 0, 'realm': 3, 'stream': 0 }, { 'id': 1, 'realm': 3, 'stream': 1 }]) self.assertDictEqual(test_added_channels, added_channels) self.assertDictEqual(test_added_recipient, added_recipient) # functioning of zerver subscriptions are already tested in the helper functions # This is to check the concatenation of the output lists from the helper functions # subscriptions for stream self.assertEqual(zerver_subscription[3]['recipient'], 1) self.assertEqual(zerver_subscription[5]['recipient'], 2) # subscription for users self.assertEqual(zerver_subscription[6]['recipient'], 3) self.assertEqual(zerver_subscription[7]['user_profile'], 1) # recipients for stream self.assertEqual(zerver_recipient[1]['id'], zerver_subscription[3]['recipient']) self.assertEqual(zerver_recipient[2]['type_id'], zerver_stream[2]['id']) self.assertEqual(zerver_recipient[0]['type'], 2) # recipients for users (already tested in helped function) self.assertEqual(zerver_recipient[3]['type'], 2) self.assertEqual(zerver_recipient[4]['type'], 1) # stream mapping self.assertEqual(zerver_stream[0]['name'], channel_data[0]['name']) self.assertEqual(zerver_stream[0]['deactivated'], channel_data[0]['is_archived']) self.assertEqual(zerver_stream[0]['description'], 'no purpose') self.assertEqual(zerver_stream[0]['invite_only'], False) self.assertEqual(zerver_stream[0]['realm'], realm_id) self.assertEqual(zerver_stream[2]['id'], test_added_channels[zerver_stream[2]['name']][1])
def test_channels_to_zerver_stream(self) -> None: slack_user_id_to_zulip_user_id = { "U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5 } zerver_userprofile = [{'id': 1}, {'id': 8}, {'id': 7}, {'id': 5}] realm_id = 3 realm, added_channels, added_mpims, dm_members, slack_recipient_name_to_zulip_recipient_id = \ channels_to_zerver_stream(self.fixture_file_name("", "slack_fixtures"), realm_id, {"zerver_userpresence": []}, slack_user_id_to_zulip_user_id, zerver_userprofile) test_added_channels = { 'sharedchannel': ("C061A0HJG", 3), 'general': ("C061A0YJG", 1), 'general1': ("C061A0YJP", 2), 'random': ("C061A0WJG", 0) } test_added_mpims = { 'mpdm-user9--user2--user10-1': ('G9HBG2A5D', 0), 'mpdm-user6--user7--user4-1': ('G6H1Z0ZPS', 1), 'mpdm-user4--user1--user5-1': ('G6N944JPL', 2) } test_dm_members = { 'DJ47BL849': ('U061A1R2R', 'U061A5N1G'), 'DHX1UP7EG': ('U061A5N1G', 'U064KUGRJ'), 'DK8HSJDHS': ('U061A1R2R', 'U064KUGRJ'), 'DRS3PSLDK': ('U064KUGRJ', 'U064KUGRJ') } slack_recipient_names = set(slack_user_id_to_zulip_user_id.keys()) | set(test_added_channels.keys()) \ | set(test_added_mpims.keys()) self.assertDictEqual(test_added_channels, added_channels) # zerver defaultstream already tested in helper functions self.assertEqual(realm["zerver_defaultstream"], [{ 'id': 0, 'realm': 3, 'stream': 0 }, { 'id': 1, 'realm': 3, 'stream': 1 }]) self.assertDictEqual(test_added_mpims, added_mpims) self.assertDictEqual(test_dm_members, dm_members) # We can't do an assertDictEqual since during the construction of Personal # recipients, slack_user_id_to_zulip_user_id are iterated in diffrent order in Python 3.5 and 3.6. self.assertEqual( set(slack_recipient_name_to_zulip_recipient_id.keys()), slack_recipient_names) self.assertEqual( set(slack_recipient_name_to_zulip_recipient_id.values()), set(i for i in range(11))) # functioning of zerver subscriptions are already tested in the helper functions # This is to check the concatenation of the output lists from the helper functions # subscriptions for stream zerver_subscription = realm["zerver_subscription"] zerver_recipient = realm["zerver_recipient"] zerver_stream = realm["zerver_stream"] self.assertEqual(self.get_set(zerver_subscription, "recipient"), {i for i in range(11)}) self.assertEqual(self.get_set(zerver_subscription, "user_profile"), {1, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "id"), self.get_set(zerver_subscription, "recipient")) self.assertEqual(self.get_set(zerver_recipient, "type_id"), {0, 1, 2, 3, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "type"), {1, 2, 3}) # stream mapping self.assertEqual(zerver_stream[0]['name'], "random") self.assertEqual(zerver_stream[0]['deactivated'], True) self.assertEqual(zerver_stream[0]['description'], 'no purpose') self.assertEqual(zerver_stream[0]['invite_only'], False) self.assertEqual(zerver_stream[0]['realm'], realm_id) self.assertEqual(zerver_stream[2]['id'], test_added_channels[zerver_stream[2]['name']][1]) self.assertEqual(self.get_set(realm["zerver_huddle"], "id"), {0, 1, 2}) self.assertEqual(realm["zerver_userpresence"], [])
def test_channels_to_zerver_stream(self, mock_get_data_file: mock.Mock) -> None: added_users = {"U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5} zerver_userprofile = [{'id': 1}, {'id': 8}, {'id': 7}, {'id': 5}] realm_id = 3 channel_data = [{'id': "C061A0WJG", 'name': 'random', 'created': '1433558319', 'is_general': False, 'members': ['U061A1R2R', 'U061A5N1G'], 'is_archived': True, 'topic': {'value': 'random'}, 'purpose': {'value': 'no purpose'}}, {'id': "C061A0YJG", 'name': 'general', 'created': '1433559319', 'is_general': False, 'is_archived': False, 'members': ['U061A1R2R', 'U061A5N1G', 'U064KUGRJ'], 'topic': {'value': 'general'}, 'purpose': {'value': 'general'}}, {'id': "C061A0YJP", 'name': 'general1', 'created': '1433559319', 'is_general': False, 'is_archived': False, 'members': ['U061A1R2R'], 'topic': {'value': 'general channel'}, 'purpose': {'value': 'For everyone'}}, {'id': "C061A0HJG", 'name': 'feedback', 'created': '1433558359', 'is_general': False, 'members': ['U061A3E0G'], 'is_archived': False, 'topic': {'value': ''}, 'purpose': {'value': ''}}] mock_get_data_file.return_value = channel_data channel_to_zerver_stream_output = channels_to_zerver_stream('./random_path', realm_id, added_users, zerver_userprofile) zerver_defaultstream = channel_to_zerver_stream_output[0] zerver_stream = channel_to_zerver_stream_output[1] added_channels = channel_to_zerver_stream_output[2] zerver_subscription = channel_to_zerver_stream_output[3] zerver_recipient = channel_to_zerver_stream_output[4] added_recipient = channel_to_zerver_stream_output[5] test_added_channels = {'feedback': ("C061A0HJG", 3), 'general': ("C061A0YJG", 1), 'general1': ("C061A0YJP", 2), 'random': ("C061A0WJG", 0)} test_added_recipient = {'feedback': 3, 'general': 1, 'general1': 2, 'random': 0} # zerver defaultstream already tested in helper functions self.assertEqual(zerver_defaultstream, [{'id': 0, 'realm': 3, 'stream': 0}, {'id': 1, 'realm': 3, 'stream': 1}]) self.assertDictEqual(test_added_channels, added_channels) self.assertDictEqual(test_added_recipient, added_recipient) # functioning of zerver subscriptions are already tested in the helper functions # This is to check the concatenation of the output lists from the helper functions # subscriptions for stream self.assertEqual(zerver_subscription[3]['recipient'], 1) self.assertEqual(zerver_subscription[5]['recipient'], 2) # subscription for users self.assertEqual(zerver_subscription[6]['recipient'], 3) self.assertEqual(zerver_subscription[7]['user_profile'], 1) # recipients for stream self.assertEqual(zerver_recipient[1]['id'], zerver_subscription[3]['recipient']) self.assertEqual(zerver_recipient[2]['type_id'], zerver_stream[2]['id']) self.assertEqual(zerver_recipient[0]['type'], 2) # recipients for users (already tested in helped function) self.assertEqual(zerver_recipient[3]['type'], 2) self.assertEqual(zerver_recipient[4]['type'], 1) # stream mapping self.assertEqual(zerver_stream[0]['name'], channel_data[0]['name']) self.assertEqual(zerver_stream[0]['deactivated'], channel_data[0]['is_archived']) self.assertEqual(zerver_stream[0]['description'], 'no purpose') self.assertEqual(zerver_stream[0]['invite_only'], False) self.assertEqual(zerver_stream[0]['realm'], realm_id) self.assertEqual(zerver_stream[2]['id'], test_added_channels[zerver_stream[2]['name']][1])
def test_channels_to_zerver_stream(self) -> None: slack_user_id_to_zulip_user_id = { "U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5, } zerver_userprofile = [{"id": 1}, {"id": 8}, {"id": 7}, {"id": 5}] realm_id = 3 with self.assertLogs(level="INFO"): ( realm, added_channels, added_mpims, dm_members, slack_recipient_name_to_zulip_recipient_id, ) = channels_to_zerver_stream( self.fixture_file_name("", "slack_fixtures"), realm_id, {"zerver_userpresence": []}, slack_user_id_to_zulip_user_id, zerver_userprofile, ) test_added_channels = { "sharedchannel": ("C061A0HJG", 3), "general": ("C061A0YJG", 1), "general1": ("C061A0YJP", 2), "random": ("C061A0WJG", 0), } test_added_mpims = { "mpdm-user9--user2--user10-1": ("G9HBG2A5D", 0), "mpdm-user6--user7--user4-1": ("G6H1Z0ZPS", 1), "mpdm-user4--user1--user5-1": ("G6N944JPL", 2), } test_dm_members = { "DJ47BL849": ("U061A1R2R", "U061A5N1G"), "DHX1UP7EG": ("U061A5N1G", "U064KUGRJ"), "DK8HSJDHS": ("U061A1R2R", "U064KUGRJ"), "DRS3PSLDK": ("U064KUGRJ", "U064KUGRJ"), } slack_recipient_names = (set(slack_user_id_to_zulip_user_id.keys()) | set(test_added_channels.keys()) | set(test_added_mpims.keys())) self.assertDictEqual(test_added_channels, added_channels) # zerver defaultstream already tested in helper functions. # Note that the `random` stream is archived and thus should # not be created as a DefaultStream. self.assertEqual(realm["zerver_defaultstream"], [{ "id": 0, "realm": 3, "stream": 1 }]) self.assertDictEqual(test_added_mpims, added_mpims) self.assertDictEqual(test_dm_members, dm_members) # We can't do an assertDictEqual since during the construction of personal # recipients, slack_user_id_to_zulip_user_id are iterated in different order in Python 3.5 and 3.6. self.assertEqual( set(slack_recipient_name_to_zulip_recipient_id.keys()), slack_recipient_names) self.assertEqual( set(slack_recipient_name_to_zulip_recipient_id.values()), set(range(11))) # functioning of zerver subscriptions are already tested in the helper functions # This is to check the concatenation of the output lists from the helper functions # subscriptions for stream zerver_subscription = realm["zerver_subscription"] zerver_recipient = realm["zerver_recipient"] zerver_stream = realm["zerver_stream"] self.assertEqual(self.get_set(zerver_subscription, "recipient"), set(range(11))) self.assertEqual(self.get_set(zerver_subscription, "user_profile"), {1, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "id"), self.get_set(zerver_subscription, "recipient")) self.assertEqual(self.get_set(zerver_recipient, "type_id"), {0, 1, 2, 3, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "type"), {1, 2, 3}) # stream mapping self.assertEqual(zerver_stream[0]["name"], "random") self.assertEqual(zerver_stream[0]["deactivated"], True) self.assertEqual(zerver_stream[0]["description"], "no purpose") self.assertEqual(zerver_stream[0]["invite_only"], False) self.assertEqual(zerver_stream[0]["realm"], realm_id) self.assertEqual(zerver_stream[2]["id"], test_added_channels[zerver_stream[2]["name"]][1]) self.assertEqual(self.get_set(realm["zerver_huddle"], "id"), {0, 1, 2}) self.assertEqual(realm["zerver_userpresence"], [])
def test_channels_to_zerver_stream(self) -> None: added_users = { "U061A1R2R": 1, "U061A3E0G": 8, "U061A5N1G": 7, "U064KUGRJ": 5 } zerver_userprofile = [{'id': 1}, {'id': 8}, {'id': 7}, {'id': 5}] realm_id = 3 channel_to_zerver_stream_output = channels_to_zerver_stream( self.fixture_file_name("", "slack_fixtures"), realm_id, added_users, zerver_userprofile) zerver_defaultstream = channel_to_zerver_stream_output[0] zerver_stream = channel_to_zerver_stream_output[1] zerver_huddle = channel_to_zerver_stream_output[2] added_channels = channel_to_zerver_stream_output[3] added_mpims = channel_to_zerver_stream_output[4] zerver_subscription = channel_to_zerver_stream_output[5] zerver_recipient = channel_to_zerver_stream_output[6] added_recipient = channel_to_zerver_stream_output[7] test_added_channels = { 'feedback': ("C061A0HJG", 3), 'general': ("C061A0YJG", 1), 'general1': ("C061A0YJP", 2), 'random': ("C061A0WJG", 0) } test_added_mpims = { 'mpdm-user9--user2--user10-1': ('G9HBG2A5D', 0), 'mpdm-user6--user7--user4-1': ('G6H1Z0ZPS', 1), 'mpdm-user4--user1--user5-1': ('G6N944JPL', 2) } test_added_recipient = { 'feedback': 3, 'general': 1, 'general1': 2, 'random': 0, 'mpdm-user9--user2--user10-1': 4, 'mpdm-user6--user7--user4-1': 5, 'mpdm-user4--user1--user5-1': 6 } # zerver defaultstream already tested in helper functions self.assertEqual(zerver_defaultstream, [{ 'id': 0, 'realm': 3, 'stream': 0 }, { 'id': 1, 'realm': 3, 'stream': 1 }]) self.assertDictEqual(test_added_channels, added_channels) self.assertDictEqual(test_added_mpims, added_mpims) self.assertDictEqual(test_added_recipient, added_recipient) # functioning of zerver subscriptions are already tested in the helper functions # This is to check the concatenation of the output lists from the helper functions # subscriptions for stream self.assertEqual(self.get_set(zerver_subscription, "recipient"), {i for i in range(11)}) self.assertEqual(self.get_set(zerver_subscription, "user_profile"), {1, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "id"), self.get_set(zerver_subscription, "recipient")) self.assertEqual(self.get_set(zerver_recipient, "type_id"), {0, 1, 2, 3, 5, 7, 8}) self.assertEqual(self.get_set(zerver_recipient, "type"), {1, 2, 3}) # stream mapping self.assertEqual(zerver_stream[0]['name'], "random") self.assertEqual(zerver_stream[0]['deactivated'], True) self.assertEqual(zerver_stream[0]['description'], 'no purpose') self.assertEqual(zerver_stream[0]['invite_only'], False) self.assertEqual(zerver_stream[0]['realm'], realm_id) self.assertEqual(zerver_stream[2]['id'], test_added_channels[zerver_stream[2]['name']][1]) self.assertEqual(self.get_set(zerver_huddle, "id"), {0, 1, 2})