Adding simple (dumb) request tests

Integration tests to come
This commit is contained in:
David Arthur
2012-09-27 20:35:00 -04:00
parent 7c86d637f5
commit 2a332d2983
2 changed files with 15 additions and 2 deletions

View File

@@ -201,7 +201,7 @@ class KafkaClient(object):
The request-key (0) is encoded as a short (int16). len is the length of the proceeding MessageSet
"""
(topic, partition, messages) = produceRequest
message_set = self.encode_message_set(messages)
message_set = cls.encode_message_set(messages)
log.debug("Sending MessageSet: %r" % message_set)
req = struct.pack('>HH%dsii%ds' % (len(topic), len(message_set)),
KafkaClient.PRODUCE_KEY, len(topic), topic, partition, len(message_set), message_set)

15
test.py
View File

@@ -3,7 +3,7 @@ import random
import struct
import unittest
from kafka import KafkaClient
from kafka import KafkaClient, ProduceRequest, FetchRequest
from kafka import gzip_encode, gzip_decode, length_prefix_message
ITERATIONS = 1000
@@ -102,5 +102,18 @@ class TestMessage(unittest.TestCase):
for j in range(n):
self.assertEquals(messages[j].payload, strings[j])
class TestRequests(unittest.TestCase):
def test_produce_request(self):
req = ProduceRequest("my-topic", 0, [KafkaClient.create_message("testing")])
enc = KafkaClient.encode_produce_request(req)
expect = "\x00\x00\x00\x08my-topic\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\r\x01\x00\xe8\xf3Z\x06testing"
self.assertEquals(enc, expect)
def test_fetch_request(self):
req = FetchRequest("my-topic", 0, 0, 1024)
enc = KafkaClient.encode_fetch_request(req)
expect = "\x00\x01\x00\x08my-topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00"
self.assertEquals(enc, expect)
if __name__ == '__main__':
unittest.main()