This is an automated email from the ASF dual-hosted git repository.

kamilbregula pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/master by this push:
     new b59adab  Support cron presets in date_range function  (#7777)
b59adab is described below

commit b59adaba369d0593a610fb8d919669a0816d63d9
Author: Ramiro Charriol <[email protected]>
AuthorDate: Mon May 11 04:57:32 2020 -0300

    Support cron presets in date_range function  (#7777)
---
 airflow/utils/dates.py    | 2 ++
 tests/utils/test_dates.py | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/airflow/utils/dates.py b/airflow/utils/dates.py
index bff941a..bd9b73f 100644
--- a/airflow/utils/dates.py
+++ b/airflow/utils/dates.py
@@ -70,6 +70,8 @@ def date_range(start_date, end_date=None, num=None, 
delta=None):  # pylint: disa
         raise Exception("Wait. Either specify end_date OR num")
     if not end_date and not num:
         end_date = timezone.utcnow()
+    if delta in cron_presets:
+        delta = cron_presets.get(delta)
 
     delta_iscron = False
     time_zone = start_date.tzinfo
diff --git a/tests/utils/test_dates.py b/tests/utils/test_dates.py
index fd68dc81..eeb5039 100644
--- a/tests/utils/test_dates.py
+++ b/tests/utils/test_dates.py
@@ -94,3 +94,11 @@ class TestUtilsDatesDateRange(unittest.TestCase):
 
             for i in range(num):
                 self.assertTrue(timezone.is_localized(result[i]))
+
+    def test_delta_cron_presets(self):
+        preset_range = dates.date_range(datetime(2016, 1, 1), num=2, 
delta="@hourly")
+        timedelta_range = dates.date_range(datetime(2016, 1, 1), num=2, 
delta=timedelta(hours=1))
+        cron_range = dates.date_range(datetime(2016, 1, 1), num=2, delta="0 * 
* * *")
+
+        self.assertEqual(preset_range, timedelta_range)
+        self.assertEqual(preset_range, cron_range)

Reply via email to