66from __future__ import print_function
77
88import datetime
9+ import zoneinfo
910import glob
1011import json
1112import os
@@ -2131,6 +2132,12 @@ def testRun(self):
21312132 Field ("start_date" , "date" ),
21322133 Field ("start_time" , "time" ),
21332134 Field ("bookedon" , "datetime" ),
2135+ Field ("default_date_str" , "date" , default = "2025-11-26" ),
2136+ Field ("default_time_str" , "time" , default = "00:01" ),
2137+ Field ("default_datetime_str" , "datetime" , default = "2025-11-26 00:01:00" ),
2138+ Field ("default_date_fun" , "date" , default = lambda : datetime .date (2025 , 11 , 26 )),
2139+ Field ("default_time_fun" , "time" , default = lambda : datetime .time (0 , 1 )),
2140+ Field ("default_datetime_fun" , "datetime" , default = lambda : datetime .datetime (2025 , 11 , 26 , 0 , 1 , 0 ))
21342141 )
21352142 db .meeting .insert (
21362143 start_date = "2025-11-26" , start_time = "12:30" , bookedon = "2025-10-20T11:30:00"
@@ -2155,7 +2162,19 @@ def testRun(self):
21552162 db (db .meeting .id == 1 ).update (bookedon = "2025-10-20T11:30" )
21562163 db (db .meeting .id == 1 ).update (bookedon = "2025-10-20T11" )
21572164 db (db .meeting .id == 1 ).update (bookedon = "2025-10-20" )
2158- db (db .meeting .id == 1 ).update (bookedon = datetime .date (2025 , 10 , 20 ))
2165+ # Test with tzinfo
2166+ db .meeting .insert (
2167+ start_date = datetime .date (2025 , 11 , 26 ),
2168+ start_time = datetime .time (12 , 30 ),
2169+ bookedon = datetime .datetime (2025 , 10 , 20 , 11 , 30 , 0 , tzinfo = zoneinfo .ZoneInfo ("UTC" ))
2170+ )
2171+ db (db .meeting .id == 1 ).update (
2172+ bookedon = datetime .datetime (2025 , 10 , 20 , 11 , 30 , 0 , tzinfo = zoneinfo .ZoneInfo ("UTC" ))
2173+ )
2174+ # Test with update expressions
2175+ db (db .meeting .id == 1 ).update (start_date = db .meeting .start_date )
2176+ db (db .meeting .id == 1 ).update (start_time = db .meeting .start_time )
2177+ db (db .meeting .id == 1 ).update (bookedon = db .meeting .bookedon )
21592178
21602179
21612180class TestImportExportFields (DALtest ):
0 commit comments