summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Nousiainen <htn@aiven.io>2018-08-29 17:02:48 +0300
committerJeff Widman <jeff@jeffwidman.com>2018-09-27 15:22:03 -0700
commit9d30ab8bdbbd7e722ba4a96a6883a965d577d3cc (patch)
tree539e33eb423ae44d29bf09018a628148e40f8d73
parent5825c67cf9b90c9e8045fcfc064c562a2888725c (diff)
downloadkafka-python-9d30ab8bdbbd7e722ba4a96a6883a965d577d3cc.tar.gz
Add positive tests for headers in record encode/decode
-rw-r--r--test/record/test_default_records.py6
-rw-r--r--test/record/test_records.py15
2 files changed, 18 insertions, 3 deletions
diff --git a/test/record/test_default_records.py b/test/record/test_default_records.py
index 6e2f5e8..c3a7b02 100644
--- a/test/record/test_default_records.py
+++ b/test/record/test_default_records.py
@@ -119,8 +119,12 @@ def test_default_batch_builder_validates_arguments():
builder.append(
5, timestamp=9999999, key=b"123", value=None, headers=[])
+ # Check record with headers
+ builder.append(
+ 6, timestamp=9999999, key=b"234", value=None, headers=[("hkey", b"hval")])
+
# in case error handling code fails to fix inner buffer in builder
- assert len(builder.build()) == 104
+ assert len(builder.build()) == 124
def test_default_correct_metadata_response():
diff --git a/test/record/test_records.py b/test/record/test_records.py
index 224989f..f1b8baa 100644
--- a/test/record/test_records.py
+++ b/test/record/test_records.py
@@ -22,6 +22,11 @@ record_batch_data_v2 = [
b'\x85\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x01]\xff|\xe7\x9d\x00\x00\x01]'
b'\xff|\xe7\x9d\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
b'\x00\x00\x00\x01\x12\x00\x00\x00\x01\x06123\x00'
+ # Fourth batch value = "hdr" with header hkey=hval
+ b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00E\x00\x00\x00\x00\x02\\'
+ b'\xd8\xefR\x00\x00\x00\x00\x00\x00\x00\x00\x01e\x85\xb6\xf3\xc1\x00\x00'
+ b'\x01e\x85\xb6\xf3\xc1\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ b'\xff\xff\x00\x00\x00\x01&\x00\x00\x00\x01\x06hdr\x02\x08hkey\x08hval'
]
record_batch_data_v1 = [
@@ -60,8 +65,8 @@ def test_memory_records_v2():
data_bytes = b"".join(record_batch_data_v2) + b"\x00" * 4
records = MemoryRecords(data_bytes)
- assert records.size_in_bytes() == 222
- assert records.valid_bytes() == 218
+ assert records.size_in_bytes() == 303
+ assert records.valid_bytes() == 299
assert records.has_next() is True
batch = records.next_batch()
@@ -77,6 +82,12 @@ def test_memory_records_v2():
assert records.next_batch() is not None
assert records.next_batch() is not None
+ batch = records.next_batch()
+ recs = list(batch)
+ assert len(recs) == 1
+ assert recs[0].value == b"hdr"
+ assert recs[0].headers == [('hkey', b'hval')]
+
assert records.has_next() is False
assert records.next_batch() is None
assert records.next_batch() is None