Example #1
0
    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])
Example #2
0
    def test_channels_to_zerver_stream(self, mock_allocate_ids: mock.Mock,
                                       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
        mock_allocate_ids.side_effect = [[1, 2, 3, 4],  # For stream
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],  # For subscription
                                         [1, 2, 3, 4, 5, 6, 7, 8],  # For recipient
                                         [1, 2]]  # For defaultstream

        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': 4, 'general': 2, 'general1': 3, 'random': 1}
        test_added_recipient = {'feedback': 4, 'general': 2, 'general1': 3, 'random': 1}

        # zerver defaultstream already tested in helper functions
        self.assertEqual(zerver_defaultstream, [{'id': 1, 'realm': 3, 'stream': 1},
                                                {'id': 2, 'realm': 3, 'stream': 2}])

        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'], 2)
        self.assertEqual(zerver_subscription[5]['recipient'], 3)
        # subscription for users
        self.assertEqual(zerver_subscription[6]['recipient'], 4)
        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']])