You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by bo...@apache.org on 2018/01/10 18:56:30 UTC

incubator-airflow git commit: [AIRFLOW-1480] Render template attributes for ExternalTaskSensor fields

Repository: incubator-airflow
Updated Branches:
  refs/heads/master 97680d85f -> bf8c8b247


[AIRFLOW-1480] Render template attributes for ExternalTaskSensor fields

Closes #2926 from pdambrauskas/feature/external_ta
sk_sensor_templates


Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/bf8c8b24
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/bf8c8b24
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/bf8c8b24

Branch: refs/heads/master
Commit: bf8c8b24751d5b1016f2a063e69a81b317c4db47
Parents: 97680d8
Author: Paulius <pa...@exacaster.com>
Authored: Wed Jan 10 19:56:23 2018 +0100
Committer: Bolke de Bruin <bo...@xs4all.nl>
Committed: Wed Jan 10 19:56:23 2018 +0100

----------------------------------------------------------------------
 airflow/operators/sensors.py |  1 +
 tests/operators/sensors.py   | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/bf8c8b24/airflow/operators/sensors.py
----------------------------------------------------------------------
diff --git a/airflow/operators/sensors.py b/airflow/operators/sensors.py
index c8a8df6..e9bf7ff 100644
--- a/airflow/operators/sensors.py
+++ b/airflow/operators/sensors.py
@@ -202,6 +202,7 @@ class ExternalTaskSensor(BaseSensorOperator):
         or execution_date_fn can be passed to ExternalTaskSensor, but not both.
     :type execution_date_fn: callable
     """
+    template_fields = ['external_dag_id', 'external_task_id']
     ui_color = '#19647e'
 
     @apply_defaults

http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/bf8c8b24/tests/operators/sensors.py
----------------------------------------------------------------------
diff --git a/tests/operators/sensors.py b/tests/operators/sensors.py
index fccc9c3..d60f15c 100644
--- a/tests/operators/sensors.py
+++ b/tests/operators/sensors.py
@@ -272,6 +272,25 @@ class ExternalTaskSensorTests(unittest.TestCase):
             'start_date': DEFAULT_DATE,
             'depends_on_past': False}
 
+    def test_templated_sensor(self):
+        dag = DAG(TEST_DAG_ID, self.args)
+
+        with dag:
+            sensor = ExternalTaskSensor(
+                task_id='templated_task',
+                external_dag_id='dag_{{ ds }}',
+                external_task_id='task_{{ ds }}',
+                start_date=DEFAULT_DATE
+            )
+
+        instance = TaskInstance(sensor, DEFAULT_DATE)
+        instance.render_templates()
+
+        self.assertEqual(sensor.external_dag_id,
+                         "dag_{}".format(DEFAULT_DATE.date()))
+        self.assertEqual(sensor.external_task_id,
+                         "task_{}".format(DEFAULT_DATE.date()))
+
     def test_external_task_sensor_fn_multiple_execution_dates(self):
         bash_command_code = """
 {% set s=execution_date.time().second %}