import pytest from datetime import date from bt_df_data_retention_manager.retention_dates import RetentionDateParams from bt_df_data_retention_manager.config import Config @pytest.fixture def example_params() -> RetentionDateParams: params = RetentionDateParams(start_year=2018, retention_months=4, key_prefix=Config.KEY_PREFIX) # Adjust end date for testing params.generate(today=date(2023, 2, 6)) return params def test_retention_dates(example_params): assert example_params.start_date == date(2018, 1, 1) assert example_params.end_date == date(2022, 9, 30) example_params.generate(today=date(2023, 1, 15)) assert example_params.end_date == date(2022, 8, 31) assert example_params.current_year_regex( ) == '.+~2022-0[1-8]-(0[1-9]|[1-2][0-9]|3[0-1]).*' example_params.generate(today=date(2023, 5, 15)) assert example_params.current_year_regex( ) == '.+~2022-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]).*' example_params.generate(today=date(2023, 6, 15)) assert example_params.current_year_regex( ) == '.+~2023-01-(0[1-9]|[1-2][0-9]|3[0-1]).*' assert example_params.filter_regex == '(.+~(2018|2019|2020|2021|2022)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]).*)|(.+~2023-01-(0[1-9]|[1-2][0-9]|3[0-1]).*)'