Skip to content

Commit 608ab24

Browse files
authored
Fix ClusterMetadata request_update() (#1056)
* Add tests for cluster request_update() * Removed @run_until_complete. * Wrap async test in class * See if this makes loop available. * Just block on Python future. * 🤦 * Explicitly update. * Improved request_update tests. * Fixed ClusterMetadata future usage. * Simplified test. * black fml.
1 parent 4cff9d7 commit 608ab24

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

aiokafka/cluster.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def failed_update(self, exception):
209209
f = self._future
210210
self._future = None
211211
if f:
212-
f.failure(exception)
212+
f.set_exception(exception)
213213
self._last_refresh_ms = time.time() * 1000
214214

215215
def update_metadata(self, metadata):
@@ -307,7 +307,7 @@ def update_metadata(self, metadata):
307307
self._last_successful_refresh_ms = now
308308

309309
if f:
310-
f.success(self)
310+
f.set_result(self)
311311
log.debug("Updated cluster metadata to %s", self)
312312

313313
for listener in self._listeners:

tests/test_cluster.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,23 @@ def test_empty_broker_list():
1919
)
2020
)
2121
assert len(cluster.brokers()) == 2
22+
23+
24+
def test_request_update_expecting_success():
25+
cluster = ClusterMetadata()
26+
updated_cluster = cluster.request_update()
27+
cluster.update_metadata(
28+
MetadataResponse[0]([(0, "foo", 12), (1, "bar", 34)], []),
29+
)
30+
assert updated_cluster.result() == cluster
31+
32+
33+
def test_request_update_expecting_failure():
34+
cluster = ClusterMetadata()
35+
updated_cluster = cluster.request_update()
36+
test_metadata = MetadataResponse[0](
37+
[], # empty brokers
38+
[(17, "foo", []), (17, "bar", [])], # topics w/ error
39+
)
40+
cluster.update_metadata(test_metadata)
41+
assert updated_cluster.exception() is not None

0 commit comments

Comments
 (0)