Return copy of consumer subscription set (#1029)
This commit is contained in:
@@ -819,7 +819,7 @@ class KafkaConsumer(six.Iterator):
|
||||
Returns:
|
||||
set: {topic, ...}
|
||||
"""
|
||||
return self._subscription.subscription
|
||||
return self._subscription.subscription.copy()
|
||||
|
||||
def unsubscribe(self):
|
||||
"""Unsubscribe from all topics and clear all assigned partitions."""
|
||||
|
@@ -24,6 +24,14 @@ class TestKafkaConsumer(unittest.TestCase):
|
||||
with self.assertRaises(KafkaConfigurationError):
|
||||
KafkaConsumer(bootstrap_servers='localhost:9092', fetch_max_wait_ms=41000, request_timeout_ms=40000)
|
||||
|
||||
def test_subscription_copy(self):
|
||||
consumer = KafkaConsumer('foo', api_version=(0, 10))
|
||||
sub = consumer.subscription()
|
||||
assert sub is not consumer.subscription()
|
||||
assert sub == set(['foo'])
|
||||
sub.add('fizz')
|
||||
assert consumer.subscription() == set(['foo'])
|
||||
|
||||
|
||||
class TestMultiProcessConsumer(unittest.TestCase):
|
||||
@unittest.skipIf(sys.platform.startswith('win'), 'test mocking fails on windows')
|
||||
|
Reference in New Issue
Block a user