Испытание блока Python воздушного потока?

Я хотел бы добавить некоторые модульные тесты для наших DAG, но не смог найти их. Есть ли рамки для модульного теста для DAG? Существует сквозная инфраструктура тестирования, но я думаю, что она мертва: https://issues.apache.org/jira/browse/AIRFLOW-79. Пожалуйста, предлагайте, спасибо!

Ответы

Ответ 1

Протестируйте своих операторов следующим образом:

class TestMyOperator(TestCase):

    def test_execute(self):
        dag = DAG(dag_id='foo', start_date=datetime.now())
        task = MyOperator(dag=dag, task_id='foo')
        ti = TaskInstance(task=task, execution_date=datetime.now())
        result = task.execute(ti.get_template_context())
        self.assertEqual(result, 'foo')

Источник

Ответ 2

В настоящее время я не смог найти ничего лучше, чем просто использовать BashOperator:

with DAG('platform-test', start_date=datetime(2017, 8, 29)) as dag:
    test_command = "python3 -m unittest --verbose {}".format(platform_test_fname)
    op = BashOperator(
        task_id="platform-test",
        bash_command=test_command,
    )