diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_client_async.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/test/test_client_async.py b/test/test_client_async.py index b165f93..8661e90 100644 --- a/test/test_client_async.py +++ b/test/test_client_async.py @@ -17,6 +17,8 @@ from kafka.future import Future from kafka.protocol.metadata import MetadataResponse, MetadataRequest from kafka.protocol.produce import ProduceRequest from kafka.structs import BrokerMetadata +from kafka.cluster import ClusterMetadata +from kafka.future import Future @pytest.fixture @@ -285,8 +287,30 @@ def test_least_loaded_node(): pass -def test_set_topics(): - pass +def test_set_topics(mocker): + request_update = mocker.patch.object(ClusterMetadata, 'request_update') + request_update.side_effect = lambda: Future() + cli = KafkaClient(api_version=(0, 10)) + + # replace 'empty' with 'non empty' + request_update.reset_mock() + fut = cli.set_topics(['t1', 't2']) + assert not fut.is_done + request_update.assert_called_with() + + # replace 'non empty' with 'same' + request_update.reset_mock() + fut = cli.set_topics(['t1', 't2']) + assert fut.is_done + assert fut.value == set(['t1', 't2']) + request_update.assert_not_called() + + # replace 'non empty' with 'empty' + request_update.reset_mock() + fut = cli.set_topics([]) + assert fut.is_done + assert fut.value == set() + request_update.assert_not_called() @pytest.fixture |