Skip to content

Commit 75ad7d3

Browse files
authored
tests: more extensive testing of date, datetime and time (#745)
1 parent abc146f commit 75ad7d3

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

tests/sql.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from __future__ import print_function
77

88
import datetime
9+
import zoneinfo
910
import glob
1011
import json
1112
import 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

21612180
class TestImportExportFields(DALtest):

0 commit comments

Comments
 (0)