My preference would be Option 2 as that is closest to prod. Our approach is
to spin up Airflow , install the providers that currently have deferrable
functionality, and run system tests on those example DAGs on a daily basis
. We are also running them on multiple executors (Celery, Kubernetes
deployments)


On Sat, Jun 3, 2023 at 4:30 AM Vandon, Raphael <vand...@amazon.com.invalid>
wrote:

> Hello,
> As we implement deferrable capabilities for operators, we're going to want
> to update the sample dags/system tests.
> The problem we encounter at the moment is that system tests are run with
> pytest using the DebugExecutor, and it only runs the "worker part" of the
> operators, without handling the "deferred part" that is taking place in the
> Triggers. In system tests, a task ran in deferrable mode just hangs forever
> in the “deferred” state, never completing.
>
> I see 3 approaches to that problem:
> 1. Patch the DebugExecutor (or an other executor that'd become the
> "official" executor for system tests) to handle deferred tasks. This bears
> some complexity, but is probably doable with some ad-hoc code that won't be
> the same as the "production" code but could execute the right things in
> order (Trigger.run after the TaskDeferred exception, and then the
> "execute_complete" method with the event returned)
> 2. Change the way we run system tests, stop using pytest, and start
> airflow in breeze, scheduling the example dags as actual dags. This has the
> upside of being the closest to prod, but it's also a more
> resource-intensive solution, and gathering the success/failure status and
> the logs will require some piping.
>  3. Do nothing, and forbid the use of deferrable in system tests. This is
> not great for obvious reasons.
>
> It's a bit hard to say which option is "the best" before digging into it,
> but my preference would go to 1. from what I tell so far.
>
> What do you community think about those options ? Did I forget a potential
> solution ?
> Other providers who also have system tests and deferrable operators, what
> is your approach ?
>

Reply via email to