remember-remember-bot/tests/test_util.py

74 lines
2 KiB
Python
Raw Normal View History

2023-09-01 15:01:03 +00:00
from remember_remember_bot.util import (
check_new_day,
update_day,
chat_is_active,
get_file_path,
today_lines,
2023-09-01 15:01:03 +00:00
)
import pytest
import datetime
2023-09-01 15:01:03 +00:00
def test_update_day():
current_day = 0
assert check_new_day(current_day)
current_day = update_day()
assert not check_new_day(current_day)
@pytest.mark.parametrize(
("messages", "active"),
[
(["/start"], True),
(["/start", "/stop"], False),
(["/start", "/stop", "Let's get this party started"], False),
2023-09-01 21:58:54 +00:00
(
[
"/start",
"Message deletion timer is set to 1 day by",
"Message deletion timer is disabled by",
"I will stop sending you messages now.",
],
False,
),
2023-09-01 15:01:03 +00:00
(["/start", "/stop", "/start"], True),
],
)
def test_chat_is_active(messages, active):
assert chat_is_active(messages) == active
@pytest.mark.parametrize(
2023-09-01 21:58:54 +00:00
"messages, tmp_file_path",
2023-09-01 15:01:03 +00:00
[
2023-09-01 21:58:54 +00:00
(["/file %file_path%"], "test1"),
(["/file %file_path%", "/stop"], "test2"),
(["I stored your reminders at the file %file_path%"], "test3"),
2023-09-01 15:01:03 +00:00
(["/start", "/stop", "/start"], None),
],
2023-09-01 21:58:54 +00:00
indirect=["tmp_file_path"],
2023-09-01 15:01:03 +00:00
)
2023-09-01 21:58:54 +00:00
def test_get_file_path(messages: [], tmp_file_path: str):
if tmp_file_path:
for listitem in range(len(messages)):
messages[listitem] = messages[listitem].replace(
"%file_path%", tmp_file_path
)
assert get_file_path(messages) == tmp_file_path
def test_today_lines():
day = datetime.datetime.now().day
month = datetime.datetime.now().month
year = datetime.datetime.now().year
lines = [
f"{day}.{month}.{year}\tToday I had a great day!",
f"{day}.{month}.2020\tI didn't go outside all day :) no appointments",
"03.13.2024\tNice how they invented a 13th month extra for the Satanists!",
]
result = today_lines(lines)
print(result)
assert len(result) == 2
assert result[0] == lines[0]
assert result[1] == lines[1]