69 lines
2.7 KiB
Python
69 lines
2.7 KiB
Python
from datetime import datetime
|
|
|
|
import tzlocal
|
|
|
|
from discord_reminder_bot.parse import ParsedTime, parse_time
|
|
|
|
|
|
def test_parse_time() -> None:
|
|
"""Test the parse_time function."""
|
|
parsed_time: ParsedTime = parse_time("18 January 2040")
|
|
assert parsed_time.err is False
|
|
assert not parsed_time.err_msg
|
|
assert parsed_time.date_to_parse == "18 January 2040"
|
|
assert parsed_time.parsed_time
|
|
assert parsed_time.parsed_time.strftime("%Y-%m-%d %H:%M:%S") == "2040-01-18 00:00:00"
|
|
|
|
parsed_time: ParsedTime = parse_time("18 January 2040 12:00")
|
|
assert parsed_time.err is False
|
|
assert not parsed_time.err_msg
|
|
assert parsed_time.date_to_parse == "18 January 2040 12:00"
|
|
assert parsed_time.parsed_time
|
|
assert parsed_time.parsed_time.strftime("%Y-%m-%d %H:%M:%S") == "2040-01-18 12:00:00"
|
|
|
|
parsed_time: ParsedTime = parse_time("18 January 2040 12:00:00")
|
|
assert parsed_time.err is False
|
|
assert not parsed_time.err_msg
|
|
assert parsed_time.date_to_parse == "18 January 2040 12:00:00"
|
|
assert parsed_time.parsed_time
|
|
assert parsed_time.parsed_time.strftime("%Y-%m-%d %H:%M:%S") == "2040-01-18 12:00:00"
|
|
|
|
parsed_time: ParsedTime = parse_time("18 January 2040 12:00:00 UTC")
|
|
assert parsed_time.err is False
|
|
assert not parsed_time.err_msg
|
|
assert parsed_time.date_to_parse == "18 January 2040 12:00:00 UTC"
|
|
assert parsed_time.parsed_time
|
|
assert parsed_time.parsed_time.strftime("%Y-%m-%d %H:%M:%S") == "2040-01-18 13:00:00"
|
|
|
|
parsed_time: ParsedTime = parse_time("18 January 2040 12:00:00 Europe/Stockholm")
|
|
assert parsed_time.err is True
|
|
assert parsed_time.err_msg == "Could not parse the date."
|
|
assert parsed_time.date_to_parse == "18 January 2040 12:00:00 Europe/Stockholm"
|
|
assert parsed_time.parsed_time is None
|
|
|
|
|
|
def test_ParsedTime() -> None: # noqa: N802
|
|
"""Test the ParsedTime class."""
|
|
parsed_time: ParsedTime = ParsedTime(
|
|
err=False,
|
|
err_msg="",
|
|
date_to_parse="18 January 2040",
|
|
parsed_time=datetime(2040, 1, 18, 0, 0, 0, tzinfo=tzlocal.get_localzone()),
|
|
)
|
|
assert parsed_time.err is False
|
|
assert not parsed_time.err_msg
|
|
assert parsed_time.date_to_parse == "18 January 2040"
|
|
assert parsed_time.parsed_time
|
|
assert parsed_time.parsed_time.strftime("%Y-%m-%d %H:%M:%S") == "2040-01-18 00:00:00"
|
|
|
|
parsed_time: ParsedTime = ParsedTime(
|
|
err=True,
|
|
err_msg="Could not parse the date.",
|
|
date_to_parse="18 January 2040 12:00:00 Europe/Stockholm",
|
|
parsed_time=None,
|
|
)
|
|
assert parsed_time.err is True
|
|
assert parsed_time.err_msg == "Could not parse the date."
|
|
assert parsed_time.date_to_parse == "18 January 2040 12:00:00 Europe/Stockholm"
|
|
assert parsed_time.parsed_time is None
|