(self, cluster, version)
| 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 |
nothing calls this directly
no test coverage detected