File tree Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Original file line number Diff line number Diff line change @@ -335,18 +335,21 @@ def execute_query(
335
335
import time
336
336
337
337
self .check_connection ()
338
- if typepy .is_null_string (query ):
338
+
339
+ queryStr = str (query )
340
+
341
+ if typepy .is_null_string (queryStr ):
339
342
return None
340
343
341
344
if self .debug_query or self .global_debug_query :
342
- logger .debug (query )
345
+ logger .debug (queryStr )
343
346
344
347
exec_start_time = time .time ()
345
348
346
349
assert self .connection # to avoid type check error
347
350
348
351
try :
349
- result = self .connection .execute (str ( query ) )
352
+ result = self .connection .execute (queryStr )
350
353
except (sqlite3 .OperationalError , sqlite3 .IntegrityError ) as e :
351
354
if caller is None :
352
355
caller = logging .getLogger ().findCaller ()
@@ -358,18 +361,18 @@ def execute_query(
358
361
"failed to execute query at {:s}({:d}) {:s}" .format (
359
362
file_path , line_no , func_name
360
363
),
361
- f" - query: { MultiByteStrDecoder (query ).unicode_str } " ,
364
+ f" - query: { MultiByteStrDecoder (queryStr ).unicode_str } " ,
362
365
f" - msg: { e } " ,
363
366
f" - db: { self .database_path } " ,
364
367
]
365
368
)
366
369
)
367
370
368
371
if self .__is_profile :
369
- self .__dict_query_count [str ( query ) ] += 1
372
+ self .__dict_query_count [queryStr ] += 1
370
373
371
374
elapse_time = time .time () - exec_start_time
372
- self .__dict_query_totalexectime [str ( query ) ] += elapse_time
375
+ self .__dict_query_totalexectime [queryStr ] += elapse_time
373
376
374
377
return result
375
378
Original file line number Diff line number Diff line change @@ -151,6 +151,18 @@ def test_smoke_view(self, con):
151
151
result = con .select (select = "*" , table_name = "view1" )
152
152
assert result is not None
153
153
154
+ def test_execute_query (self , con ):
155
+ from simplesqlite .query import Select
156
+
157
+ result = con .execute_query (Select ("*" , TEST_TABLE_NAME ))
158
+ assert result is not None
159
+
160
+ def test_exception_query (self , con ):
161
+ from simplesqlite .query import Select
162
+
163
+ with pytest .raises (OperationalError ):
164
+ con .execute_query (Select ("*" , "invalid_table" ))
165
+
154
166
@pytest .mark .parametrize (
155
167
["attr" , "table_name" , "expected" ],
156
168
[
You can’t perform that action at this time.
0 commit comments