diff options
author | barrotsteindev <barrotstein@gmail.com> | 2016-09-28 20:30:32 +0300 |
---|---|---|
committer | Dana Powers <dana.powers@gmail.com> | 2016-09-28 10:30:32 -0700 |
commit | b8717b4b79462e83344f49bbd42312cf521d84aa (patch) | |
tree | c20e9a2f2e33e744702d277cb84e7a08c85d2218 /test/test_partitioner.py | |
parent | 5c784890b6f323ea37c6171a59184e9304cbcb5c (diff) | |
download | kafka-python-b8717b4b79462e83344f49bbd42312cf521d84aa.tar.gz |
Update Partitioners for use with KafkaProducer (#827)
Diffstat (limited to 'test/test_partitioner.py')
-rw-r--r-- | test/test_partitioner.py | 33 |
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') |