示例#1
0
def test_should_run_continue(load_dag, airflow_session, storage):
    with mock.patch(
            'google.cloud.storage.client.Client._connection',
            new_callable=mock.PropertyMock,
    ) as client_mock:
        client_mock.return_value = storage.mock_connection(
            {'items': [{
                'name': 'bar.csv'
            }]})

        start_date = timezone.datetime(2020, 1, 1)
        dag_bag = load_dag('wrench_to_lake')
        dag = dag_bag.get_dag('wrench_to_lake')
        dag.clear()

        should_run_task = dag.get_task('should_run')
        assert isinstance(should_run_task, BranchPythonOperator)

        should_run_ti = TaskInstance(should_run_task, start_date)
        should_run_ti.run()

        with airflow_session() as session:
            tis = session.query(TaskInstance).filter(
                TaskInstance.dag_id == dag.dag_id,
                TaskInstance.execution_date == start_date)
            for ti in tis:
                if ti.task_id == 'should_run':
                    assert ti.state == State.SUCCESS
                elif ti.task_id == 'schedule_df_wrench_to_lake':
                    assert ti.state != State.SKIPPED
示例#2
0
def test_get_dated_main_runner_handles_zero_shift():
    dag = DAG(dag_id='test_dag',
              start_date=datetime.strptime('2019-01-01', '%Y-%m-%d'))
    execution_date = datetime.strptime('2019-01-01',
                                       '%Y-%m-%d').replace(tzinfo=timezone.utc)
    main_func = PickleMock()
    runner = op_util.get_dated_main_runner_operator(dag, main_func,
                                                    timedelta(minutes=1))
    ti = TaskInstance(runner, execution_date)
    ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True)
    main_func.assert_called_with('2019-01-01')
示例#3
0
 def _run_task(self, ti: TaskInstance) -> bool:
     self.log.debug("Executing task: %s", ti)
     key = ti.key
     try:
         params = self.tasks_params.pop(ti.key, {})
         ti.run(job_id=ti.job_id, **params)
         self.change_state(key, State.SUCCESS)
         return True
     except Exception as e:
         ti.set_state(State.FAILED)
         self.change_state(key, State.FAILED)
         self.log.exception("Failed to execute task: %s.", str(e))
         return False
class TestHelloOperator(unittest.TestCase):
    def setUp(self):
        self.dag = DAG(TEST_DAG_ID,
                       schedule_interval='@daily',
                       default_args={'start_date': DEFAULT_DATE})
        self.op = HelloOperator(dag=self.dag,
                                task_id='test_hello',
                                name='test_name')
        self.ti = TaskInstance(task=self.op, execution_date=DEFAULT_DATE)

    def test_execute_no_trigger(self):
        self.ti.run(ignore_ti_state=True)
        self.assertEqual(self.ti.state, State.SUCCESS)
示例#5
0
 def run_task(self, op):
     ti = TaskInstance(task=op, execution_date=DEFAULT_DATE)
     ti.run(ignore_ti_state=True)