@@ -259,6 +259,45 @@ def test_suppress_instrumentation(self):
259
259
spans_list = self .memory_exporter .get_finished_spans ()
260
260
self .assertEqual (len (spans_list ), 0 )
261
261
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
+
262
301
def test_executemany (self ):
263
302
db_integration = dbapi .DatabaseApiIntegration (
264
303
"instrumenting_module_test_name" , "testcomponent"
0 commit comments