Exemplo n.º 1
0
    def test_dagrun_success_when_all_skipped(self):
        """
        Tests that a DAG run succeeds when all tasks are skipped
        """
        dag = DAG(dag_id='test_dagrun_success_when_all_skipped',
                  start_date=timezone.datetime(2017, 1, 1))
        dag_task1 = ShortCircuitOperator(task_id='test_short_circuit_false',
                                         dag=dag,
                                         python_callable=lambda: False)
        dag_task2 = DummyOperator(task_id='test_state_skipped1', dag=dag)
        dag_task3 = DummyOperator(task_id='test_state_skipped2', dag=dag)
        dag_task1.set_downstream(dag_task2)
        dag_task2.set_downstream(dag_task3)

        initial_task_states = {
            'test_short_circuit_false': State.SUCCESS,
            'test_state_skipped1': State.SKIPPED,
            'test_state_skipped2': State.SKIPPED,
        }

        dag_run = self.create_dag_run(dag=dag,
                                      state=State.RUNNING,
                                      task_states=initial_task_states)
        dag_run.update_state()
        self.assertEqual(State.SUCCESS, dag_run.state)
        "/bin/echo '{{ params.target_location }}/" + f"{t_view.output}';",
    ],
    task_id="move_data",
    do_xcom_push=True,
    params={
        "source_location": "/your/input_dir/path",
        "target_location": "/your/output_dir/path"
    },
    dag=dag,
)

t_print = DockerOperator(
    api_version="1.19",
    docker_url="tcp://localhost:2375",
    image="centos:latest",
    mounts=[
        Mount(source="/your/host/output_dir/path",
              target="/your/output_dir/path",
              type="bind")
    ],
    command=f"cat {t_move.output}",
    task_id="print",
    dag=dag,
)

t_is_data_available.set_downstream(t_move)
t_move.set_downstream(t_print)

# Task dependencies created via `XComArgs`:
#   t_view >> t_is_data_available