|
12 | 12 | import pytest |
13 | 13 |
|
14 | 14 | from ddtrace.contrib.internal.kafka.patch import TracedConsumer |
| 15 | +from ddtrace.contrib.internal.kafka.patch import TracedProducer |
15 | 16 | from ddtrace.contrib.internal.kafka.patch import patch |
16 | 17 | from ddtrace.contrib.internal.kafka.patch import unpatch |
17 | 18 | import ddtrace.internal.datastreams # noqa: F401 - used as part of mock patching |
@@ -211,6 +212,19 @@ def test_consumer_created_with_logger_does_not_raise(tracer): |
211 | 212 | consumer.close() |
212 | 213 |
|
213 | 214 |
|
| 215 | +def test_consumer_initialized_with_unpacked_config(tracer): |
| 216 | + """Test that adding a logger to a Consumer init does not raise any errors.""" |
| 217 | + consumer = confluent_kafka.Consumer( |
| 218 | + **{ |
| 219 | + "bootstrap.servers": BOOTSTRAP_SERVERS, |
| 220 | + "group.id": GROUP_ID, |
| 221 | + "auto.offset.reset": "earliest", |
| 222 | + }, |
| 223 | + ) |
| 224 | + assert isinstance(consumer, TracedConsumer) |
| 225 | + consumer.close() |
| 226 | + |
| 227 | + |
214 | 228 | def test_empty_list_from_consume_does_not_raise(): |
215 | 229 | # https://github.com/DataDog/dd-trace-py/issues/8846 |
216 | 230 | patch() |
@@ -247,6 +261,23 @@ def test_producer_bootstrap_servers(config, expect_servers, tracer): |
247 | 261 | assert producer._dd_bootstrap_servers is None |
248 | 262 |
|
249 | 263 |
|
| 264 | +@pytest.mark.parametrize( |
| 265 | + "config,expect_servers", |
| 266 | + [ |
| 267 | + ({"bootstrap.servers": BOOTSTRAP_SERVERS}, BOOTSTRAP_SERVERS), |
| 268 | + ({"metadata.broker.list": BOOTSTRAP_SERVERS}, BOOTSTRAP_SERVERS), |
| 269 | + ({}, None), |
| 270 | + ], |
| 271 | +) |
| 272 | +def test_producer_initialized_unpacked_config(config, expect_servers, tracer): |
| 273 | + producer = confluent_kafka.Producer(**config) |
| 274 | + assert isinstance(producer, TracedProducer) |
| 275 | + if expect_servers is not None: |
| 276 | + assert producer._dd_bootstrap_servers == expect_servers |
| 277 | + else: |
| 278 | + assert producer._dd_bootstrap_servers is None |
| 279 | + |
| 280 | + |
250 | 281 | def test_produce_single_server(dummy_tracer, producer, kafka_topic): |
251 | 282 | Pin.override(producer, tracer=dummy_tracer) |
252 | 283 | producer.produce(kafka_topic, PAYLOAD, key=KEY) |
|
0 commit comments