1717
1818import pytest
1919import sqlalchemy
20- from sqlalchemy import create_engine
20+ from sqlalchemy import (
21+ create_engine ,
22+ text ,
23+ )
2124
2225from opentelemetry import trace
2326from opentelemetry .instrumentation .sqlalchemy import SQLAlchemyInstrumentor
@@ -43,12 +46,14 @@ def test_trace_integration(self):
4346 tracer_provider = self .tracer_provider ,
4447 )
4548 cnx = engine .connect ()
46- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
47- cnx .execute ("/* leading comment */ SELECT 1 + 1;" ).fetchall ()
49+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
50+ cnx .execute (text ( "/* leading comment */ SELECT 1 + 1;" ) ).fetchall ()
4851 cnx .execute (
49- "/* leading comment */ SELECT 1 + 1; /* trailing comment */"
52+ text (
53+ "/* leading comment */ SELECT 1 + 1; /* trailing comment */"
54+ )
5055 ).fetchall ()
51- cnx .execute ("SELECT 1 + 1; /* trailing comment */" ).fetchall ()
56+ cnx .execute (text ( "SELECT 1 + 1; /* trailing comment */" ) ).fetchall ()
5257 spans = self .memory_exporter .get_finished_spans ()
5358
5459 self .assertEqual (len (spans ), 5 )
@@ -76,9 +81,9 @@ def test_instrument_two_engines(self):
7681 )
7782
7883 cnx_1 = engine_1 .connect ()
79- cnx_1 .execute ("SELECT 1 + 1;" ).fetchall ()
84+ cnx_1 .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
8085 cnx_2 = engine_2 .connect ()
81- cnx_2 .execute ("SELECT 1 + 1;" ).fetchall ()
86+ cnx_2 .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
8287
8388 spans = self .memory_exporter .get_finished_spans ()
8489 # 2 queries + 2 engine connect
@@ -111,7 +116,7 @@ async def run():
111116 engine = engine .sync_engine , tracer_provider = self .tracer_provider
112117 )
113118 async with engine .connect () as cnx :
114- await cnx .execute (sqlalchemy . text ("SELECT 1 + 1;" ))
119+ await cnx .execute (text ("SELECT 1 + 1;" ))
115120 spans = self .memory_exporter .get_finished_spans ()
116121 self .assertEqual (len (spans ), 2 )
117122 # first span - the connection to the db
@@ -144,7 +149,7 @@ def test_not_recording(self):
144149 tracer_provider = self .tracer_provider ,
145150 )
146151 cnx = engine .connect ()
147- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
152+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
148153 self .assertFalse (mock_span .is_recording ())
149154 self .assertTrue (mock_span .is_recording .called )
150155 self .assertFalse (mock_span .set_attribute .called )
@@ -156,7 +161,7 @@ def test_create_engine_wrapper(self):
156161
157162 engine = create_engine ("sqlite:///:memory:" )
158163 cnx = engine .connect ()
159- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
164+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
160165 spans = self .memory_exporter .get_finished_spans ()
161166
162167 self .assertEqual (len (spans ), 2 )
@@ -187,7 +192,7 @@ def test_create_engine_wrapper_enable_commenter(self):
187192
188193 engine = create_engine ("sqlite:///:memory:" )
189194 cnx = engine .connect ()
190- cnx .execute ("SELECT 1;" ).fetchall ()
195+ cnx .execute (text ( "SELECT 1;" ) ).fetchall ()
191196 # sqlcommenter
192197 self .assertRegex (
193198 self .caplog .records [- 2 ].getMessage (),
@@ -207,7 +212,7 @@ def test_create_engine_wrapper_enable_commenter_otel_values_false(self):
207212
208213 engine = create_engine ("sqlite:///:memory:" )
209214 cnx = engine .connect ()
210- cnx .execute ("SELECT 1;" ).fetchall ()
215+ cnx .execute (text ( "SELECT 1;" ) ).fetchall ()
211216 # sqlcommenter
212217 self .assertRegex (
213218 self .caplog .records [- 2 ].getMessage (),
@@ -233,7 +238,7 @@ def test_custom_tracer_provider(self):
233238
234239 engine = create_engine ("sqlite:///:memory:" )
235240 cnx = engine .connect ()
236- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
241+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
237242 spans = self .memory_exporter .get_finished_spans ()
238243
239244 self .assertEqual (len (spans ), 2 )
@@ -258,7 +263,7 @@ async def run():
258263
259264 engine = create_async_engine ("sqlite+aiosqlite:///:memory:" )
260265 async with engine .connect () as cnx :
261- await cnx .execute (sqlalchemy . text ("SELECT 1 + 1;" ))
266+ await cnx .execute (text ("SELECT 1 + 1;" ))
262267 spans = self .memory_exporter .get_finished_spans ()
263268 self .assertEqual (len (spans ), 2 )
264269 # first span - the connection to the db
@@ -299,7 +304,7 @@ async def run():
299304
300305 engine = create_async_engine ("sqlite+aiosqlite:///:memory:" )
301306 async with engine .connect () as cnx :
302- await cnx .execute (sqlalchemy . text ("SELECT 1;" ))
307+ await cnx .execute (text ("SELECT 1;" ))
303308 # sqlcommenter
304309 self .assertRegex (
305310 self .caplog .records [1 ].getMessage (),
@@ -330,7 +335,7 @@ async def run():
330335
331336 engine = create_async_engine ("sqlite+aiosqlite:///:memory:" )
332337 async with engine .connect () as cnx :
333- await cnx .execute (sqlalchemy . text ("SELECT 1;" ))
338+ await cnx .execute (text ("SELECT 1;" ))
334339 # sqlcommenter
335340 self .assertRegex (
336341 self .caplog .records [1 ].getMessage (),
@@ -346,7 +351,7 @@ def test_uninstrument(self):
346351 tracer_provider = self .tracer_provider ,
347352 )
348353 cnx = engine .connect ()
349- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
354+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
350355 spans = self .memory_exporter .get_finished_spans ()
351356
352357 self .assertEqual (len (spans ), 2 )
@@ -359,10 +364,10 @@ def test_uninstrument(self):
359364
360365 self .memory_exporter .clear ()
361366 SQLAlchemyInstrumentor ().uninstrument ()
362- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
367+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
363368 engine2 = create_engine ("sqlite:///:memory:" )
364369 cnx2 = engine2 .connect ()
365- cnx2 .execute ("SELECT 2 + 2;" ).fetchall ()
370+ cnx2 .execute (text ( "SELECT 2 + 2;" ) ).fetchall ()
366371 spans = self .memory_exporter .get_finished_spans ()
367372 self .assertEqual (len (spans ), 0 )
368373
@@ -371,7 +376,7 @@ def test_uninstrument(self):
371376 tracer_provider = self .tracer_provider ,
372377 )
373378 cnx = engine .connect ()
374- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
379+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
375380 spans = self .memory_exporter .get_finished_spans ()
376381 self .assertEqual (len (spans ), 2 )
377382
@@ -384,13 +389,13 @@ def test_uninstrument_without_engine(self):
384389 engine = create_engine ("sqlite:///:memory:" )
385390
386391 cnx = engine .connect ()
387- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
392+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
388393 spans = self .memory_exporter .get_finished_spans ()
389394 self .assertEqual (len (spans ), 2 )
390395
391396 self .memory_exporter .clear ()
392397 SQLAlchemyInstrumentor ().uninstrument ()
393- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
398+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
394399 spans = self .memory_exporter .get_finished_spans ()
395400 self .assertEqual (len (spans ), 0 )
396401
@@ -401,7 +406,7 @@ def test_no_op_tracer_provider(self):
401406 tracer_provider = trace .NoOpTracerProvider (),
402407 )
403408 cnx = engine .connect ()
404- cnx .execute ("SELECT 1 + 1;" ).fetchall ()
409+ cnx .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
405410 spans = self .memory_exporter .get_finished_spans ()
406411 self .assertEqual (len (spans ), 0 )
407412
@@ -420,7 +425,7 @@ def make_shortlived_engine():
420425 # collection
421426 weakref .finalize (engine , callback )
422427 with engine .connect () as conn :
423- conn .execute ("SELECT 1 + 1;" ).fetchall ()
428+ conn .execute (text ( "SELECT 1 + 1;" ) ).fetchall ()
424429
425430 for _ in range (0 , 5 ):
426431 make_shortlived_engine ()
0 commit comments