This is an automated email from the ASF dual-hosted git repository. jedcunningham pushed a commit to branch v2-8-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 62f636f0d4dc410e9dd366cc605477bbd520c821 Author: Hussein Awala <[email protected]> AuthorDate: Sat Mar 16 01:08:40 2024 +0100 bump `croniter` to fix an issue with 29 Feb cron expressions (#38198) (cherry picked from commit 2e3b1758246169b278e7d409ecff98532ec18c18) --- pyproject.toml | 2 +- tests/models/test_dag.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 001dd86d37..2a3cac3008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,7 +87,7 @@ dependencies = [ # This limit can be removed after https://github.com/apache/airflow/issues/35234 is fixed "connexion[flask]>=2.10.0,<3.0", "cron-descriptor>=1.2.24", - "croniter>=0.3.17", + "croniter>=2.0.2", "cryptography>=0.9.3", "deprecated>=1.2.13", "dill>=0.2.2", diff --git a/tests/models/test_dag.py b/tests/models/test_dag.py index 152bed8e94..31a7460704 100644 --- a/tests/models/test_dag.py +++ b/tests/models/test_dag.py @@ -2453,6 +2453,19 @@ my_postgres_conn: next_subdag_info = subdag.next_dagrun_info(None) assert next_subdag_info is None, "SubDags should never have DagRuns created by the scheduler" + def test_next_dagrun_info_on_29_feb(self): + dag = DAG( + "test_scheduler_dagrun_29_feb", start_date=timezone.datetime(2024, 1, 1), schedule="0 0 29 2 *" + ) + + next_info = dag.next_dagrun_info(None) + assert next_info and next_info.logical_date == timezone.datetime(2024, 2, 29) + + next_info = dag.next_dagrun_info(next_info.data_interval) + assert next_info.logical_date == timezone.datetime(2028, 2, 29) + assert next_info.data_interval.start == timezone.datetime(2028, 2, 29) + assert next_info.data_interval.end == timezone.datetime(2032, 2, 29) + def test_replace_outdated_access_control_actions(self): outdated_permissions = { "role1": {permissions.ACTION_CAN_READ, permissions.ACTION_CAN_EDIT},
