Skip to content

Commit b5d35e9

Browse files
committed
Saved at 2025-01-04 09:55:09 (Sat)
1 parent 06468ab commit b5d35e9

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/tests/test_datetime.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,18 @@ def test_main(self, *, date: dt.date, days: int) -> None:
184184
with assume_does_not_raise(OverflowError):
185185
timedelta = days * DAY
186186
with assume_does_not_raise(OverflowError):
187-
result = date_add_timedelta(date, timedelta)
187+
result = date_add_timedelta(date, timedelta=timedelta)
188188
assert is_instance_date_not_datetime(result)
189189

190+
@given(date=dates())
191+
def test_none(self, *, date: dt.date) -> None:
192+
result = date_add_timedelta(date)
193+
assert result == date
194+
190195
@given(date=dates())
191196
def test_error(self, *, date: dt.date) -> None:
192197
with raises(DateAddTimeDeltaError, match="Timedelta must be day-only; got .*"):
193-
_ = date_add_timedelta(date, SECOND)
198+
_ = date_add_timedelta(date, timedelta=SECOND)
194199

195200

196201
class TestDateToDatetime:

src/utilities/datetime.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,13 @@ def __str__(self) -> str:
112112
##
113113

114114

115-
def date_add_timedelta(date: dt.date, timedelta: dt.timedelta, /) -> dt.date:
115+
def date_add_timedelta(
116+
date: dt.date, /, *, timedelta: dt.timedelta | None = None
117+
) -> dt.date:
116118
"""Add a timedelta to a date, checking that it remains a date."""
117119
check_date_not_datetime(date)
120+
if timedelta is None:
121+
return date
118122
if (timedelta.seconds != 0) or (timedelta.microseconds != 0):
119123
raise DateAddTimeDeltaError(timedelta=timedelta)
120124
return date + timedelta

0 commit comments

Comments
 (0)