コード例 #1
0
ファイル: test_utils.py プロジェクト: nj94ray39/kafka-util
    def test_process_consumer_offset_message_invalid_message(self, parse_mock):
        parse_mock.side_effect = InvalidMessageException
        kafka_group_reader = KafkaGroupReader(mock.Mock())
        message = mock.MagicMock(spec=ConsumerRecord)
        kafka_group_reader.process_consumer_offset_message(message)

        assert kafka_group_reader._kafka_groups == dict()
コード例 #2
0
ファイル: test_utils.py プロジェクト: Yelp/kafka-utils
    def test_process_consumer_offset_message_invalid_message(self, parse_mock):
        parse_mock.side_effect = InvalidMessageException
        kafka_group_reader = KafkaGroupReader(mock.Mock())
        message = mock.MagicMock(spec=ConsumerRecord)
        kafka_group_reader.process_consumer_offset_message(message)

        assert kafka_group_reader._kafka_groups == dict()
コード例 #3
0
    def test_process_consumer_offset_message_topic_pop_no_offset(self):
        kafka_config = mock.Mock()
        kafka_group_reader = KafkaGroupReader(kafka_config)

        kafka_group_reader.kafka_groups['test_group'] = set(['test_topic'])
        assert kafka_group_reader.kafka_groups['test_group'] == set(
            ['test_topic'])

        with mock.patch.object(
                kafka_group_reader,
                'parse_consumer_offset_message',
                return_value=['test_group', 'test_topic', 0, None],
                autospec=True):
            kafka_group_reader.process_consumer_offset_message('test message')
            assert kafka_group_reader.kafka_groups == {'test_group': set([])}
コード例 #4
0
    def test_process_consumer_offset_message_group(self, parse_mock):
        parse_mock.side_effect = [('test.a', 'topic1', 0, 123),
                                  ('test.a', 'topic1', 1, 124),
                                  ('test.a', 'topic2', 0, 125),
                                  ('my_test', 'topic1', 0, 123),
                                  ('my_test', 'topic2', 0, 124),
                                  ('my_test', 'topic2', 0, None),
                                  ('my_test2', 'topic3', 0, 123), ]
        kafka_group_reader = KafkaGroupReader(mock.Mock())
        for _ in range(7):
            message = mock.MagicMock(spec=ConsumerRecord)
            kafka_group_reader.process_consumer_offset_message(message)

        expected = {'test.a': {'topic1', 'topic2'}, 'my_test2': {'topic3'}, 'my_test': {'topic1'}}
        assert kafka_group_reader.kafka_groups == expected
コード例 #5
0
ファイル: test_utils.py プロジェクト: nj94ray39/kafka-util
    def test_process_consumer_offset_message_group(self, parse_mock):
        parse_mock.side_effect = [
            ('test.a', 'topic1', 0, 123),
            ('test.a', 'topic1', 1, 124),
            ('test.a', 'topic2', 0, 125),
            ('my_test', 'topic1', 0, 123),
            ('my_test', 'topic2', 0, 124),
            ('my_test', 'topic2', 0, None),
            ('my_test2', 'topic3', 0, 123),
        ]
        kafka_group_reader = KafkaGroupReader(mock.Mock())
        for _ in range(7):
            message = mock.MagicMock(spec=ConsumerRecord)
            kafka_group_reader.process_consumer_offset_message(message)

        expected = {
            'test.a': {
                'topic1': {
                    0: 123,
                    1: 124
                },
                'topic2': {
                    0: 125
                },
            },
            'my_test2': {
                'topic3': {
                    0: 123
                },
            },
            'my_test': {
                'topic1': {
                    0: 123
                },
            },
        }

        # Convert the defaultdict to a normal dict for comparison
        actual = {}
        for group, topics in six.iteritems(kafka_group_reader._kafka_groups):
            actual[group] = {}
            for topic, partitions in six.iteritems(topics):
                actual[group][topic] = {}
                for partition, offset in six.iteritems(partitions):
                    actual[group][topic][partition] = offset

        assert actual == expected
コード例 #6
0
ファイル: test_utils.py プロジェクト: nj94ray39/kafka-util
    def test_process_consumer_offset_message_topic_get(self):
        kafka_config = mock.Mock()
        kafka_group_reader = KafkaGroupReader(kafka_config)

        assert kafka_group_reader._kafka_groups == {}

        with mock.patch.object(
                kafka_group_reader,
                'parse_consumer_offset_message',
                return_value=['test_group', 'test_topic', 0, 45],
                autospec=True):
            kafka_group_reader.process_consumer_offset_message('test message')
            assert kafka_group_reader._kafka_groups['test_group'] == {
                'test_topic': {
                    0: 45
                }
            }
コード例 #7
0
ファイル: test_utils.py プロジェクト: Yelp/kafka-utils
    def test_process_consumer_offset_message_topic_get(self):
        kafka_config = mock.Mock()
        kafka_group_reader = KafkaGroupReader(kafka_config)

        assert kafka_group_reader._kafka_groups == {}

        with mock.patch.object(
            kafka_group_reader,
            'parse_consumer_offset_message',
            return_value=[
                'test_group',
                'test_topic',
                0,
                45
            ],
            autospec=True
        ):
            kafka_group_reader.process_consumer_offset_message('test message')
            assert kafka_group_reader._kafka_groups['test_group'] == {'test_topic': {0: 45}}
コード例 #8
0
ファイル: test_utils.py プロジェクト: Yelp/kafka-utils
    def test_process_consumer_offset_message_group(self, parse_mock):
        parse_mock.side_effect = [('test.a', 'topic1', 0, 123),
                                  ('test.a', 'topic1', 1, 124),
                                  ('test.a', 'topic2', 0, 125),
                                  ('my_test', 'topic1', 0, 123),
                                  ('my_test', 'topic2', 0, 124),
                                  ('my_test', 'topic2', 0, None),
                                  ('my_test2', 'topic3', 0, 123), ]
        kafka_group_reader = KafkaGroupReader(mock.Mock())
        for _ in range(7):
            message = mock.MagicMock(spec=ConsumerRecord)
            kafka_group_reader.process_consumer_offset_message(message)

        expected = {
            'test.a': {
                'topic1': {0: 123, 1: 124},
                'topic2': {0: 125},
            },
            'my_test2': {
                'topic3': {0: 123},
            },
            'my_test': {
                'topic1': {0: 123},
            },
        }

        # Convert the defaultdict to a normal dict for comparison
        actual = {}
        for group, topics in six.iteritems(kafka_group_reader._kafka_groups):
            actual[group] = {}
            for topic, partitions in six.iteritems(topics):
                actual[group][topic] = {}
                for partition, offset in six.iteritems(partitions):
                    actual[group][topic][partition] = offset

        assert actual == expected