You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by da...@apache.org on 2017/03/22 22:26:17 UTC
incubator-airflow git commit: [AIRFLOW-1017] get_task_instance
shouldn't throw exception when no TI
Repository: incubator-airflow
Updated Branches:
refs/heads/master b586bd612 -> b2b9587cc
[AIRFLOW-1017] get_task_instance shouldn't throw exception when no TI
get_task_instance should return None instead of
throwing exception in the case where dagrun does not have the task
instance.
Closes #2178 from aoen/ddavydov--
one_instead_of_first_for_dagrun
Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/b2b9587c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/b2b9587c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/b2b9587c
Branch: refs/heads/master
Commit: b2b9587cca9195229ab107394ad94b7702c70e37
Parents: b586bd6
Author: Dan Davydov <da...@airbnb.com>
Authored: Wed Mar 22 15:24:57 2017 -0700
Committer: Dan Davydov <da...@airbnb.com>
Committed: Wed Mar 22 15:25:04 2017 -0700
----------------------------------------------------------------------
airflow/models.py | 2 +-
tests/models.py | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/b2b9587c/airflow/models.py
----------------------------------------------------------------------
diff --git a/airflow/models.py b/airflow/models.py
index a7d2916..df23de2 100755
--- a/airflow/models.py
+++ b/airflow/models.py
@@ -4017,7 +4017,7 @@ class DagRun(Base):
TI.dag_id == self.dag_id,
TI.execution_date == self.execution_date,
TI.task_id == task_id
- ).one()
+ ).first()
return ti
http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/b2b9587c/tests/models.py
----------------------------------------------------------------------
diff --git a/tests/models.py b/tests/models.py
index 8ce08eb..dcba354 100644
--- a/tests/models.py
+++ b/tests/models.py
@@ -310,6 +310,32 @@ class DagRunTest(unittest.TestCase):
state = dr.update_state()
self.assertEqual(State.FAILED, state)
+ def test_get_task_instance_on_empty_dagrun(self):
+ """
+ Make sure that a proper value is returned when a dagrun has no task instances
+ """
+ session = settings.Session()
+
+ # Any dag will work for this
+ dag = self.dagbag.get_dag('test_dagrun_short_circuit_false')
+ now = datetime.datetime.now()
+
+ # Don't use create_dagrun since it will create the task instances too which we
+ # don't want
+ dag_run = models.DagRun(
+ dag_id=dag.dag_id,
+ run_id='manual__' + now.isoformat(),
+ execution_date=now,
+ start_date=now,
+ state=State.RUNNING,
+ external_trigger=False,
+ )
+ session.add(dag_run)
+ session.commit()
+
+ ti = dag_run.get_task_instance('test_short_circuit_false')
+ self.assertEqual(None, ti)
+
class DagBagTest(unittest.TestCase):