Refactor create_pages.py and write tests

This commit is contained in:
2023-03-20 02:18:04 +01:00
parent 2df11adb16
commit 40569cb91c
3 changed files with 499 additions and 139 deletions

68
tests/test_parse.py Normal file
View File

@ -0,0 +1,68 @@
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