def test_retry_period_finished(self):
     """
     Task instance's that have had their retry period elapse should pass this dep
     """
     ti = self._get_task_instance(State.UP_FOR_RETRY, end_date=datetime(2016, 1, 1))
     assert not ti.is_premature
     assert NotInRetryPeriodDep().is_met(ti=ti)
 def test_still_in_retry_period(self):
     """
     Task instances that are in their retry period should fail this dep
     """
     ti = self._get_task_instance(State.UP_FOR_RETRY, end_date=datetime(2016, 1, 1, 15, 30))
     assert ti.is_premature
     assert not NotInRetryPeriodDep().is_met(ti=ti)
    def test_not_in_retry_period(self):
        """
        Task instance's that are not up for retry can not be in their retry period
        """
        dag = FakeDag()
        task = FakeTask(dag=dag)
        ti = FakeTI(task=task, state=State.SUCCESS)

        self.assertTrue(NotInRetryPeriodDep().is_met(ti=ti, dep_context=None))
示例#4
0
 def deps(self):
     """
     Returns the list of dependencies for the operator. These differ from execution
     context dependencies in that they are specific to tasks and can be
     extended/overridden by subclasses.
     """
     return {
         NotInRetryPeriodDep(),
         PrevDagrunDep(),
         TriggerRuleDep(),
     }
    def test_retry_period_finished(self):
        """
        Task instance's that have had their retry period elapse should pass this dep
        """
        dag = FakeDag()
        task = FakeTask(dag=dag, retry_delay=timedelta(minutes=1))
        ti = FakeTI(
            task=task,
            state=State.UP_FOR_RETRY,
            end_date=datetime(2016, 1, 1),
            is_premature=False)

        self.assertTrue(NotInRetryPeriodDep().is_met(ti=ti, dep_context=None))
    def test_still_in_retry_period(self):
        """
        Task instances that are in their retry period should fail this dep
        """
        dag = FakeDag()
        task = FakeTask(dag=dag, retry_delay=timedelta(minutes=1))
        ti = FakeTI(
            task=task,
            state=State.UP_FOR_RETRY,
            end_date=datetime(2016, 1, 1),
            is_premature=True)

        self.assertFalse(NotInRetryPeriodDep().is_met(ti=ti, dep_context=None))
示例#7
0
 def deps(self):
     """
     Returns the list of dependencies for the operator. These differ from execution
     context dependencies in that they are specific to tasks and can be
     extended/overridden by subclasses.
     """
     return {
         # 验证重试时间: 任务实例已经标记为重试,但是还没有到下一次重试时间,如果运行就会失败
         NotInRetryPeriodDep(),
         # 验证任务实例是否依赖上一个周期的任务实例
         PrevDagrunDep(),
         # 验证上游依赖任务
         TriggerRuleDep(),
     }
示例#8
0
    def deps(self):
        """
        Returns the list of dependencies for the operator. These differ from execution
        context dependencies in that they are specific to tasks and can be
        extended/overridden by subclasses.
        """
        from airflow.ti_deps.deps.not_in_retry_period_dep import NotInRetryPeriodDep
        from airflow.ti_deps.deps.prev_dagrun_dep import PrevDagrunDep

        try:
            from dbnd_airflow.dbnd_task_executor.optimized_trigger_rule_dep import (
                TriggerRuleDepOptimizied as TriggerRuleDep,
            )
        except Exception:
            from airflow.ti_deps.deps.trigger_rule_dep import TriggerRuleDep

        return {
            NotInRetryPeriodDep(),
            PrevDagrunDep(),
            TriggerRuleDep(),  # PATCH: We replace TriggerRuleDep with TriggerRuleDepOptimizied
        }
 def test_not_in_retry_period(self):
     """
     Task instance's that are not up for retry can not be in their retry period
     """
     ti = self._get_task_instance(State.SUCCESS)
     self.assertTrue(NotInRetryPeriodDep().is_met(ti=ti))