MCPcopy Create free account
hub / github.com/dpkp/kafka-python / test_metadata

Method test_metadata

test/test_cluster.py:65–88  ·  view source on GitHub ↗
(self, cluster, version)

Source from the content-addressed store, hash-verified

63
64 @pytest.mark.parametrize('version', range(0, MetadataResponse.max_version + 1))
65 def test_metadata(self, cluster, version):
66 response = _make_metadata_response(version)
67 response = MetadataResponse.decode(response.encode(), version=version)
68 cluster.update_metadata(response)
69 assert len(cluster.topics()) == 1
70 if version >= 1:
71 assert cluster.controller == cluster.broker_metadata(0)
72 else:
73 assert cluster.controller is None
74 if version >= 2:
75 assert cluster.cluster_id == 'cluster-foo'
76 else:
77 assert cluster.cluster_id is None
78 if version >= 5:
79 assert cluster._partitions['topic-1'][0].offline_replicas == [12]
80 else:
81 assert cluster._partitions['topic-1'][0].offline_replicas == []
82 if version >= 9:
83 # KAFKA-9212: leader_epoch is only trusted from v9+.
84 assert cluster._partitions['topic-1'][0].leader_epoch == 0
85 else:
86 # Pre-v9 broker may emit stale epochs during reassignment;
87 # we sanitize to -1 (NO_PARTITION_LEADER_EPOCH).
88 assert cluster._partitions['topic-1'][0].leader_epoch == -1
89
90 def test_kafka_9212_stale_epoch_sanitized_on_pre_v9_response(self, cluster):
91 """KAFKA-9212: pre-2.4 brokers may propagate stale leader_epoch

Callers

nothing calls this directly

Calls 6

_make_metadata_responseFunction · 0.85
update_metadataMethod · 0.80
broker_metadataMethod · 0.80
decodeMethod · 0.45
encodeMethod · 0.45
topicsMethod · 0.45

Tested by

no test coverage detected