Skip to content

Commit cbc3491

Browse files
committed
resolve conflict
1 parent edb34e6 commit cbc3491

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4848
([#3734](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3734))
4949
- `opentelemetry-instrumentation`: botocore: upgrade moto package from 5.0.9 to 5.1.11
5050
([#3736](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3736))
51+
- `opentelemetry-instrumentation-dbapi`: Add support for `commenter_options` in `trace_integration` to control SQLCommenter behavior
52+
([#3743](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3743))
5153

5254
## Version 1.36.0/0.57b0 (2025-07-29)
5355

instrumentation/opentelemetry-instrumentation-dbapi/tests/test_dbapi_integration.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,45 @@ def test_suppress_instrumentation(self):
259259
spans_list = self.memory_exporter.get_finished_spans()
260260
self.assertEqual(len(spans_list), 0)
261261

262+
def test_commenter_options_propagation(self):
263+
db_integration = dbapi.DatabaseApiIntegration(
264+
"instrumenting_module_test_name",
265+
"testcomponent",
266+
commenter_options={"opentelemetry_values": False},
267+
)
268+
mock_connection = db_integration.wrapped_connection(
269+
mock_connect, {}, {}
270+
)
271+
cursor = mock_connection.cursor()
272+
with self.assertRaises(Exception):
273+
cursor.execute("SELECT 1", throw_exception=True)
274+
spans_list = self.memory_exporter.get_finished_spans()
275+
self.assertEqual(len(spans_list), 1)
276+
span = spans_list[0]
277+
self.assertEqual(span.attributes.get("db.system"), "testcomponent")
278+
self.assertIn("opentelemetry_values", db_integration.commenter_options)
279+
self.assertFalse(
280+
db_integration.commenter_options["opentelemetry_values"]
281+
)
282+
283+
@mock.patch("opentelemetry.instrumentation.dbapi.wrap_connect")
284+
def test_trace_integration_passes_commenter_options(
285+
self, mock_wrap_connect
286+
):
287+
fake_connect_module = mock.Mock()
288+
fake_options = {"opentelemetry_values": False, "foo": "bar"}
289+
dbapi.trace_integration(
290+
connect_module=fake_connect_module,
291+
connect_method_name="connect",
292+
database_system="testdb",
293+
commenter_options=fake_options,
294+
)
295+
mock_wrap_connect.assert_called_once()
296+
_, _, kwargs = mock_wrap_connect.mock_calls[0]
297+
298+
self.assertIn("commenter_options", kwargs)
299+
self.assertEqual(kwargs["commenter_options"], fake_options)
300+
262301
def test_executemany(self):
263302
db_integration = dbapi.DatabaseApiIntegration(
264303
"instrumenting_module_test_name", "testcomponent"

0 commit comments

Comments
 (0)