diff --git a/tests/test_agenda.py b/tests/test_agenda.py new file mode 100644 index 0000000..4e0429d --- /dev/null +++ b/tests/test_agenda.py @@ -0,0 +1,87 @@ +import datetime +from decimal import Decimal + +import pytest +from agenda import ( + get_gbpusd, + get_next_bank_holiday, + get_next_timezone_transition, + next_economist, + next_uk_fathers_day, + next_uk_mothers_day, + timedelta_display, + uk_financial_year_end, + xmas_day, +) + + +@pytest.fixture +def mock_today(): + # Mock the current date for testing purposes + return datetime.date(2023, 10, 5) + + +@pytest.fixture +def mock_now(): + # Mock the current date and time for testing purposes + return datetime.datetime(2023, 10, 5, 12, 0, 0) + + +def test_next_uk_mothers_day(mock_today): + # Test next_uk_mothers_day function + next_mothers_day = next_uk_mothers_day(mock_today) + assert next_mothers_day == datetime.date(2024, 4, 21) + + +def test_next_uk_fathers_day(mock_today): + # Test next_uk_fathers_day function + next_fathers_day = next_uk_fathers_day(mock_today) + assert next_fathers_day == datetime.date(2024, 6, 21) + + +def test_get_next_timezone_transition(mock_now) -> None: + # Test get_next_timezone_transition function + next_transition = get_next_timezone_transition(mock_now, "Europe/London") + assert next_transition == datetime.date(2023, 10, 29) + + +def test_get_next_bank_holiday(mock_today) -> None: + # Test get_next_bank_holiday function + next_holiday = get_next_bank_holiday(mock_today) + assert next_holiday["date"] == datetime.date(2023, 12, 25) + assert next_holiday["title"] == "Christmas Day" + + +def test_get_gbpusd(mock_now): + # Test get_gbpusd function + gbpusd = get_gbpusd(mock_now) + assert isinstance(gbpusd, Decimal) + # You can add more assertions based on your specific use case. + + +def test_next_economist(mock_today): + # Test next_economist function + next_publication = next_economist(mock_today) + assert next_publication == datetime.date(2023, 10, 5) + + +def test_xmas_day(): + # Test xmas_day function + christmas = xmas_day(datetime.date(2023, 12, 25)) + assert christmas == datetime.date(2023, 12, 25) + + +def test_uk_financial_year_end(): + # Test uk_financial_year_end function + financial_year_end = uk_financial_year_end(datetime.date(2023, 4, 1)) + assert financial_year_end == datetime.date(2023, 4, 5) + + +def test_timedelta_display(): + # Test timedelta_display function + delta = datetime.timedelta(days=2, hours=5, minutes=30) + display = timedelta_display(delta) + assert display == " 2 days 5 hrs 30 mins" + + +# You can add more test cases for other functions as needed.