Return copy of consumer subscription set (#1029)

This commit is contained in:
Dana Powers 2017-03-13 12:42:47 -07:00 committed by GitHub
parent 899f11730d
commit ce57dac0c6
2 changed files with 9 additions and 1 deletions

View File

@ -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."""

View File

@ -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')