1010 MetaData ,
1111 String ,
1212 Table ,
13+ text ,
1314 create_engine ,
1415)
1516
2324class TestSQLAlchemy (AppMapTestBase ):
2425 @staticmethod
2526 def test_sql_capture (connection , events ):
26- connection .execute ("SELECT 1" )
27+ # Passing a string to execute is deprecated in 1.4
28+ # and removed in 2.0. We wrap it with text().
29+ # https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execute
30+ connection .execute (text ("SELECT 1" ))
2731 assert events [0 ].sql_query == DictIncluding (
2832 {"sql" : "SELECT 1" , "database_type" : "sqlite" }
2933 )
@@ -38,25 +42,27 @@ def test_capture_ddl(events, schema):
3842 assert "CREATE TABLE addresses" in events [- 2 ].sql_query ["sql" ]
3943
4044 # pylint: disable=unused-argument
41- def test_capture_insert (self , connection , schema , events ):
45+ def test_capture_insert (self , engine , schema , events ):
4246 ins = self .users .insert ().values (name = "jack" , fullname = "Jack Jones" )
43- connection .execute (ins )
47+ with engine .begin () as conn :
48+ conn .execute (ins )
4449 assert (
4550 events [- 2 ].sql_query ["sql" ]
4651 == "INSERT INTO users (name, fullname) VALUES (?, ?)"
4752 )
4853
4954 # pylint: disable=unused-argument
50- def test_capture_insert_many (self , connection , schema , events ):
51- connection .execute (
52- self .addresses .insert (),
53- [
54- {"user_id" : 1 , "email_address" : "jack@yahoo.com" },
55- {"user_id" : 1 , "email_address" : "jack@msn.com" },
56- {"user_id" : 2 , "email_address" : "www@www.org" },
57- {"user_id" : 2 , "email_address" : "wendy@aol.com" },
58- ],
59- )
55+ def test_capture_insert_many (self , engine , schema , events ):
56+ with engine .begin () as conn :
57+ conn .execute (
58+ self .addresses .insert (),
59+ [
60+ {"user_id" : 1 , "email_address" : "jack@yahoo.com" },
61+ {"user_id" : 1 , "email_address" : "jack@msn.com" },
62+ {"user_id" : 2 , "email_address" : "www@www.org" },
63+ {"user_id" : 2 , "email_address" : "wendy@aol.com" },
64+ ],
65+ )
6066 assert (
6167 events [- 2 ].sql_query ["sql" ]
6268 == "-- 4 times\n INSERT INTO addresses (user_id, email_address) VALUES (?, ?)"
0 commit comments