summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kafka/producer/simple.py4
-rw-r--r--test/test_producer.py11
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)