diff options
| author | Dana Powers <dana.powers@gmail.com> | 2017-10-05 10:15:33 -0700 |
|---|---|---|
| committer | Dana Powers <dana.powers@gmail.com> | 2018-02-05 13:49:57 -0800 |
| commit | 619895d1216cfc3b5da4270d3869cd31b7b55a14 (patch) | |
| tree | 79ae89e8a5da9bdf92912774accfc724770c5a10 /test | |
| parent | 618c5051493693c1305aa9f08e8a0583d5fcf0e3 (diff) | |
| download | kafka-python-619895d1216cfc3b5da4270d3869cd31b7b55a14.tar.gz | |
Fix Fetcher.PartitionRecords to handle fetch_offset in the middle of compressed messageset
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_fetcher.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/test_fetcher.py b/test/test_fetcher.py index 429071a..aa8e9c3 100644 --- a/test/test_fetcher.py +++ b/test/test_fetcher.py @@ -498,3 +498,26 @@ def test__parse_fetched_data__out_of_range(fetcher, topic, mocker): partition_record = fetcher._parse_fetched_data(completed_fetch) assert partition_record is None assert fetcher._subscriptions.assignment[tp].awaiting_reset is True + + +def test_partition_records_offset(): + """Test that compressed messagesets are handle correctly + when fetch offset is in the middle of the message list + """ + batch_start = 120 + batch_end = 130 + fetch_offset = 123 + tp = TopicPartition('foo', 0) + messages = [ConsumerRecord(tp.topic, tp.partition, i, + None, None, 'key', 'value', 'checksum', 0, 0) + for i in range(batch_start, batch_end)] + records = Fetcher.PartitionRecords(fetch_offset, None, messages) + assert records.has_more() + msgs = records.take(1) + assert msgs[0].offset == 123 + assert records.fetch_offset == 124 + msgs = records.take(2) + assert len(msgs) == 2 + assert records.has_more() + records.discard() + assert not records.has_more() |
