apache/airflow

Changelog omits important change to `dag.test()` behavior in 2.7.0

Open

#34,490 opened on Sep 19, 2023

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Python (16,781 forks)batch import
good first issuekind:documentation

Repository metrics

Stars
 (44,809 stars)
PR merge metrics
 (Avg merge 7d 18h) (834 merged PRs in 30d)

Description

What do you see as an issue?

See my comment https://github.com/apache/airflow/pull/32820#issuecomment-1714093966:

This PR appears to have unintentionally(?), or at least without being documented in the changelog, changed the way dag.test() handles exceptions. (See this line for example – https://github.com/apache/airflow/pull/32820/files#diff-62c8e300ee91e0d59f81e0ea5d30834f04db71ae74f2e155a10b51056b00b59bR2677 – dag.test() now returns a DagRun not None.)

This might actually help with writing unit tests for exceptions in DAGs – https://github.com/apache/airflow/discussions/32831 – I'm exploring that now.

Can this be added retroactively to the changelog for clarity?

I did explore the impact on https://github.com/apache/airflow/discussions/32831, and it's positive: I can now test a DAG in which a task fails, but other tasks continue – either because of their trigger rules, or because of parallel mapped task groups. Previously we had to use DebugExecutor for this, and it was very slow. This is a good change, and a significant one, and it should be documented in the changelog.

Solving the problem

Describe the perhaps-unintentional(?) effects of https://github.com/apache/airflow/pull/32820 on dag.test() and specifically on testing DAG runs with failing tasks.

Anything else

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Contributor guide