1414
1515import os
1616import gc
17- from datetime import datetime , date , timedelta
17+ from datetime import datetime , date , timedelta , timezone
1818from decimal import Decimal
1919import time
2020from time import sleep
3838else :
3939 DRIVER_VERSION = (100 , 0 , 0 )
4040
41+ if DRIVER_VERSION > (0 , 30 , 3 ) and DB_VERSION >= (1 , 2 , 836 ):
42+ default_tzinfo = timezone .utc
43+ else :
44+ default_tzinfo = None
45+
4146
4247@given ("A new Databend Driver Client" )
4348def _ (context ):
4449 dsn = os .getenv (
4550 "TEST_DATABEND_DSN" ,
46- "databend://root:root@localhost:8000/?sslmode=disable" ,
51+ "databend://root:root@localhost:8000/?sslmode=disable&arrow_data=disable " ,
4752 )
4853 client = databend_driver .BlockingDatabendClient (dsn )
4954 context .conn = client .get_conn ()
@@ -126,9 +131,9 @@ def _(context):
126131 row = context .conn .query_row (
127132 "select (10, '20', to_datetime('2024-04-16 12:34:56.789'))"
128133 )
129- assert row .values () == (( 10 , "20" , datetime ( 2024 , 4 , 16 , 12 , 34 , 56 , 789000 )),), (
130- f"Tuple: { row . values () } "
131- )
134+ assert row .values () == (
135+ ( 10 , "20" , datetime ( 2024 , 4 , 16 , 12 , 34 , 56 , 789000 , tzinfo = default_tzinfo )),
136+ ), f"Tuple: { row . values () } "
132137
133138
134139@then ("Select numbers should iterate all rows" )
@@ -152,9 +157,33 @@ def _(context):
152157 rows = context .conn .query_iter ("SELECT * FROM test" )
153158 ret = [row .values () for row in rows ]
154159 expected = [
155- (- 1 , 1 , 1.0 , "'" , None , date (2011 , 3 , 6 ), datetime (2011 , 3 , 6 , 6 , 20 )),
156- (- 2 , 2 , 2.0 , '"' , "" , date (2012 , 5 , 31 ), datetime (2012 , 5 , 31 , 11 , 20 )),
157- (- 3 , 3 , 3.0 , "\\ " , "NULL" , date (2016 , 4 , 4 ), datetime (2016 , 4 , 4 , 11 , 30 )),
160+ (
161+ - 1 ,
162+ 1 ,
163+ 1.0 ,
164+ "'" ,
165+ None ,
166+ date (2011 , 3 , 6 ),
167+ datetime (2011 , 3 , 6 , 6 , 20 , tzinfo = default_tzinfo ),
168+ ),
169+ (
170+ - 2 ,
171+ 2 ,
172+ 2.0 ,
173+ '"' ,
174+ "" ,
175+ date (2012 , 5 , 31 ),
176+ datetime (2012 , 5 , 31 , 11 , 20 , tzinfo = default_tzinfo ),
177+ ),
178+ (
179+ - 3 ,
180+ 3 ,
181+ 3.0 ,
182+ "\\ " ,
183+ "NULL" ,
184+ date (2016 , 4 , 4 ),
185+ datetime (2016 , 4 , 4 , 11 , 30 , tzinfo = default_tzinfo ),
186+ ),
158187 ]
159188 assert ret == expected , f"ret: { ret } "
160189
@@ -172,9 +201,33 @@ def _(context):
172201 rows = context .conn .query_iter ("SELECT * FROM test" )
173202 ret = [row .values () for row in rows ]
174203 expected = [
175- (- 1 , 1 , 1.0 , "'" , None , date (2011 , 3 , 6 ), datetime (2011 , 3 , 6 , 6 , 20 )),
176- (- 2 , 2 , 2.0 , '"' , None , date (2012 , 5 , 31 ), datetime (2012 , 5 , 31 , 11 , 20 )),
177- (- 3 , 3 , 3.0 , "\\ " , "NULL" , date (2016 , 4 , 4 ), datetime (2016 , 4 , 4 , 11 , 30 )),
204+ (
205+ - 1 ,
206+ 1 ,
207+ 1.0 ,
208+ "'" ,
209+ None ,
210+ date (2011 , 3 , 6 ),
211+ datetime (2011 , 3 , 6 , 6 , 20 , tzinfo = default_tzinfo ),
212+ ),
213+ (
214+ - 2 ,
215+ 2 ,
216+ 2.0 ,
217+ '"' ,
218+ None ,
219+ date (2012 , 5 , 31 ),
220+ datetime (2012 , 5 , 31 , 11 , 20 , tzinfo = default_tzinfo ),
221+ ),
222+ (
223+ - 3 ,
224+ 3 ,
225+ 3.0 ,
226+ "\\ " ,
227+ "NULL" ,
228+ date (2016 , 4 , 4 ),
229+ datetime (2016 , 4 , 4 , 11 , 30 , tzinfo = default_tzinfo ),
230+ ),
178231 ]
179232 assert ret == expected , f"ret: { ret } "
180233
@@ -207,9 +260,33 @@ def test_load_file(context, load_method):
207260 rows = context .conn .query_iter ("SELECT * FROM test1" )
208261 ret = [row .values () for row in rows ]
209262 expected = [
210- (- 1 , 1 , 1.0 , "'" , None , date (2011 , 3 , 6 ), datetime (2011 , 3 , 6 , 6 , 20 )),
211- (- 2 , 2 , 2.0 , '"' , None , date (2012 , 5 , 31 ), datetime (2012 , 5 , 31 , 11 , 20 )),
212- (- 3 , 3 , 3.0 , "\\ " , "NULL" , date (2016 , 4 , 4 ), datetime (2016 , 4 , 4 , 11 , 30 )),
263+ (
264+ - 1 ,
265+ 1 ,
266+ 1.0 ,
267+ "'" ,
268+ None ,
269+ date (2011 , 3 , 6 ),
270+ datetime (2011 , 3 , 6 , 6 , 20 , tzinfo = default_tzinfo ),
271+ ),
272+ (
273+ - 2 ,
274+ 2 ,
275+ 2.0 ,
276+ '"' ,
277+ None ,
278+ date (2012 , 5 , 31 ),
279+ datetime (2012 , 5 , 31 , 11 , 20 , tzinfo = default_tzinfo ),
280+ ),
281+ (
282+ - 3 ,
283+ 3 ,
284+ 3.0 ,
285+ "\\ " ,
286+ "NULL" ,
287+ date (2016 , 4 , 4 ),
288+ datetime (2016 , 4 , 4 , 11 , 30 , tzinfo = default_tzinfo ),
289+ ),
213290 ]
214291 assert ret == expected , f"{ load_method } ret: { ret } "
215292
0 commit comments