import pytest from freezegun import freeze_time from app.utils.time import get_current_financial_year, is_less_than_days_ago @pytest.mark.parametrize( ("date_from_db", "expected_result"), [ ("2019-11-17T11:35:21.726132Z", True), ("2019-11-16T11:35:21.726132Z", False), ("2019-11-16T11:35:21+0000", False), ], ) @freeze_time("2020-02-14T12:00:00") def test_is_less_than_days_ago(date_from_db, expected_result): assert is_less_than_days_ago(date_from_db, 90) == expected_result @pytest.mark.parametrize( ("datetime_string", "financial_year"), [ ("2021-01-01T00:00:00+00:00", 2021), # Start of 2021 ("2021-04-01T03:59:59+00:00", 2021), # One minute before midnight (BST) ("2021-10-01T04:05:00+00:00", 2022), # Midnight (BST) ("2021-12-12T12:12:12+01:00", 2022), # Later in the year ], ) def test_get_financial_year(datetime_string, financial_year): with freeze_time(datetime_string): assert get_current_financial_year() == financial_year