Skip to content

Commit 025f8af

Browse files
committed
fix(date handling): can't subtract offset-naive and offset-aware datetimes
1 parent 004309b commit 025f8af

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

dateHandling.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import datetime
1+
from datetime import datetime, timezone, timedelta
22

33
def isNowInTimePeriod(startTime, endTime, nowTime):
44
if startTime < endTime:
@@ -7,13 +7,15 @@ def isNowInTimePeriod(startTime, endTime, nowTime):
77
#Over midnight:
88
return nowTime >= startTime or nowTime <= endTime
99

10-
def dayText(event, today=datetime.datetime.today()):
10+
def dayText(event, today=datetime.now(timezone.utc)):
1111

1212
weekday = ['Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag','Lørdag','Søndag']
1313
text = ''
14-
dt = datetime.datetime.fromisoformat(event['start'].get('dateTime', event['start'].get('date')))
15-
# today = datetime.datetime.today()
16-
tomorrow = today + datetime.timedelta(1)
14+
# The line `dt = datetime.datetime.fromisoformat(event['start'].get('dateTime',
15+
# event['start'].get('date')))`
16+
# is parsing the start time of an event from a dictionary called `event`.
17+
dt = datetime.fromisoformat(event['start'].get('dateTime', event['start'].get('date')))
18+
tomorrow = today + timedelta(1)
1719
delta = dt - today
1820

1921
if dt.date() == today.date() :

tests/dateHandling_test.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,29 @@ def test_dayText_friday_plus_one_week():
6767

6868
assert dayText(event, today) == "Fredag 03/11: Event summary"
6969

70+
def test_dayText_today_with_time_and_timezone():
71+
event = {
72+
'start': {
73+
'date': '2023-10-23',
74+
'dateTime': '2023-10-23T10:22:18+01:00'
75+
},
76+
'summary': 'Event summary'
77+
}
78+
today = datetime.datetime.strptime("2023-10-23T10:12 +0100", "%Y-%m-%dT%H:%M %z")
79+
# print(today)
80+
# dt: 2023-11-09 13:15:00+01:00
81+
# today: 2023-11-04 18:54:37.512734
82+
83+
assert dayText(event, today) == "I dag: Event summary kl. 10:22"
84+
85+
def test_dayText_today_with_datetime_and_timezone():
86+
event = {
87+
'start': {
88+
'date': datetime.datetime.today().strftime('%Y-%m-%d'),
89+
'dateTime': datetime.datetime.today().strftime('%Y-%m-%d') + 'T10:22:18+01:00'
90+
},
91+
'summary': 'Event summary'
92+
}
93+
94+
assert dayText(event) == "I dag: Event summary kl. 10:22"
95+

0 commit comments

Comments
 (0)