Send daily birthday notifications, add more settings & configs, fix small bugs in database

This commit is contained in:
stijndcl 2022-07-23 23:21:32 +02:00
parent 393cc9c891
commit da0e60ac4f
8 changed files with 105 additions and 12 deletions

View file

@ -52,7 +52,7 @@ async def test_get_birthday_not_exists(database_session: AsyncSession, user: Use
@freeze_time("2022/07/23")
async def test_get_birthdays_on_day(database_session: AsyncSession, user: User):
"""Test getting all birthdays on a given day"""
await crud.add_birthday(database_session, user.user_id, datetime.today())
await crud.add_birthday(database_session, user.user_id, datetime.today().replace(year=2001))
user_2 = await users.get_or_add(database_session, user.user_id + 1)
await crud.add_birthday(database_session, user_2.user_id, datetime.today() + timedelta(weeks=1))

View file

@ -0,0 +1,34 @@
import datetime
import pytest
from didier.utils.types.datetime import str_to_date
def test_str_to_date_single_valid():
"""Test parsing a string for a single possibility (default)"""
result = str_to_date("23/11/2001")
assert result == datetime.date(year=2001, month=11, day=23)
def test_str_to_date_single_invalid():
"""Test parsing a string for an invalid string"""
# Invalid format
with pytest.raises(ValueError):
str_to_date("23/11/01")
# Invalid date
with pytest.raises(ValueError):
str_to_date("69/42/0")
def test_str_to_date_multiple_valid():
"""Test parsing a string for multiple possibilities"""
result = str_to_date("23/11/01", formats=["%d/%m/%Y", "%d/%m/%y"])
assert result == datetime.date(year=2001, month=11, day=23)
def test_str_to_date_multiple_invalid():
"""Test parsing a string for multiple possibilities when none are valid"""
with pytest.raises(ValueError):
str_to_date("2001/01/02", formats=["%d/%m/%Y", "%d/%m/%y"])