@@ -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