diff options
-rw-r--r-- | kafka/producer/simple.py | 4 | ||||
-rw-r--r-- | test/test_producer.py | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/kafka/producer/simple.py b/kafka/producer/simple.py index afeae06..17e0977 100644 --- a/kafka/producer/simple.py +++ b/kafka/producer/simple.py @@ -2,6 +2,7 @@ from __future__ import absolute_import import logging import random +import six from itertools import cycle @@ -68,6 +69,9 @@ class SimpleProducer(Producer): return next(self.partition_cycles[topic]) def send_messages(self, topic, *msg): + if not isinstance(topic, six.binary_type): + raise TypeError("topic must be type bytes") + partition = self._next_partition(topic) return super(SimpleProducer, self).send_messages(topic, partition, *msg) diff --git a/test/test_producer.py b/test/test_producer.py index caf8fe3..119930f 100644 --- a/test/test_producer.py +++ b/test/test_producer.py @@ -25,3 +25,14 @@ class TestKafkaProducer(unittest.TestCase): # This should not raise an exception producer.send_messages(topic, partition, m) + def test_topic_message_types(self): + from kafka.producer.simple import SimpleProducer + + producer = SimpleProducer(MagicMock()) + topic = "test-topic" + partition = 0 + + def send_message(): + producer.send_messages(topic, partition, b'hi') + + self.assertRaises(TypeError, send_message) |