summaryrefslogtreecommitdiff
path: root/test/test_partitioner.py
diff options
context:
space:
mode:
authorbarrotsteindev <barrotstein@gmail.com>2016-09-28 20:30:32 +0300
committerDana Powers <dana.powers@gmail.com>2016-09-28 10:30:32 -0700
commitb8717b4b79462e83344f49bbd42312cf521d84aa (patch)
treec20e9a2f2e33e744702d277cb84e7a08c85d2218 /test/test_partitioner.py
parent5c784890b6f323ea37c6171a59184e9304cbcb5c (diff)
downloadkafka-python-b8717b4b79462e83344f49bbd42312cf521d84aa.tar.gz
Update Partitioners for use with KafkaProducer (#827)
Diffstat (limited to 'test/test_partitioner.py')
-rw-r--r--test/test_partitioner.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/test_partitioner.py b/test/test_partitioner.py
index 52b6b81..e0398c6 100644
--- a/test/test_partitioner.py
+++ b/test/test_partitioner.py
@@ -3,6 +3,7 @@ import six
from kafka.partitioner import Murmur2Partitioner
from kafka.partitioner.default import DefaultPartitioner
+from kafka.partitioner import RoundRobinPartitioner
def test_default_partitioner():
@@ -22,6 +23,38 @@ def test_default_partitioner():
assert partitioner(None, all_partitions, []) in all_partitions
+def test_roundrobin_partitioner():
+ partitioner = RoundRobinPartitioner()
+ all_partitions = list(range(100))
+ available = all_partitions
+ # partitioner should cycle between partitions
+ i = 0
+ max_partition = all_partitions[len(all_partitions) - 1]
+ while i <= max_partition:
+ assert i == partitioner(None, all_partitions, available)
+ i += 1
+
+ i = 0
+ while i <= int(max_partition / 2):
+ assert i == partitioner(None, all_partitions, available)
+ i += 1
+
+ # test dynamic partition re-assignment
+ available = available[:-25]
+
+ while i <= max(available):
+ assert i == partitioner(None, all_partitions, available)
+ i += 1
+
+ all_partitions = list(range(200))
+ available = all_partitions
+
+ max_partition = all_partitions[len(all_partitions) - 1]
+ while i <= max_partition:
+ assert i == partitioner(None, all_partitions, available)
+ i += 1
+
+
def test_hash_bytes():
p = Murmur2Partitioner(range(1000))
assert p.partition(bytearray(b'test')) == p.partition(b'test')