Files
odysseus/tests/test_calendar_parse_dt_tonight.py

27 lines
1.0 KiB
Python

"""Regression: _parse_dt must understand "tonight" like parse_due_for_user does.
parse_due_for_user's natural-language regex accepts
`(today|tonight|tomorrow|tmrw|yesterday)`, but _parse_dt (the parser
_parse_dt_pair falls back to for calendar event start/end) only had
`(today|tomorrow|tmrw|yesterday)`. So an event start like "tonight at 9pm"
missed the today-branch and fell through to dateutil, which does not know the
word "tonight" and raises, breaking event creation for a phrasing that works
fine for reminders. "tonight" is now handled, mapped to today like the sibling.
"""
from routes.calendar_routes import _parse_dt
def test_tonight_with_time_parses_to_today_evening():
got = _parse_dt("tonight at 9pm")
ref = _parse_dt("today at 9pm")
assert got.hour == 21 and got.minute == 0
assert got.date() == ref.date()
def test_bare_tonight_is_today():
assert _parse_dt("tonight").date() == _parse_dt("today").date()
def test_tonight_matches_today_time_exactly():
assert _parse_dt("tonight at 7:30pm") == _parse_dt("today at 7:30pm")