13
13
14
14
USER_AGENT_TOKEN = "PySQL e2e Tests"
15
15
16
+ def sqlalchemy_1_3 ():
17
+ import sqlalchemy
18
+ return sqlalchemy .__version__ .startswith ("1.3" )
19
+
20
+ def version_agnostic_select (object_to_select , * args , ** kwargs ):
21
+ """
22
+ SQLAlchemy==1.3.x requires arguments to select() to be a Python list
23
+
24
+ https://docs.sqlalchemy.org/en/20/changelog/migration_14.html#orm-query-is-internally-unified-with-select-update-delete-2-0-style-execution-available
25
+ """
26
+
27
+ if sqlalchemy_1_3 ():
28
+ return select ([object_to_select ], * args , ** kwargs )
29
+ else :
30
+ return select (object_to_select , * args , ** kwargs )
31
+
32
+
16
33
17
34
@pytest .fixture
18
35
def db_engine ():
@@ -154,7 +171,7 @@ def test_bulk_insert_with_core(db_engine, metadata_obj, session):
154
171
metadata_obj .create_all ()
155
172
db_engine .execute (insert (SampleTable ).values (rows ))
156
173
157
- rows = db_engine .execute (select (SampleTable )).fetchall ()
174
+ rows = db_engine .execute (version_agnostic_select (SampleTable )).fetchall ()
158
175
159
176
assert len (rows ) == num_to_insert
160
177
@@ -180,7 +197,7 @@ def test_create_insert_drop_table_core(base, db_engine, metadata_obj: MetaData):
180
197
with db_engine .connect () as conn :
181
198
conn .execute (insert_stmt )
182
199
183
- select_stmt = select (SampleTable )
200
+ select_stmt = version_agnostic_select (SampleTable )
184
201
resp = db_engine .execute (select_stmt )
185
202
186
203
result = resp .fetchall ()
@@ -216,7 +233,7 @@ class SampleObject(base):
216
233
session .add (sample_object_2 )
217
234
session .commit ()
218
235
219
- stmt = select (SampleObject ).where (
236
+ stmt = version_agnostic_select (SampleObject ).where (
220
237
SampleObject .name .in_ (["Bim Adewunmi" , "Miki Meek" ])
221
238
)
222
239
@@ -258,7 +275,7 @@ def test_dialect_type_mappings(base, db_engine, metadata_obj: MetaData):
258
275
with db_engine .connect () as conn :
259
276
conn .execute (insert_stmt )
260
277
261
- select_stmt = select (SampleTable )
278
+ select_stmt = version_agnostic_select (SampleTable )
262
279
resp = db_engine .execute (select_stmt )
263
280
264
281
result = resp .fetchall ()
0 commit comments