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)