Add providers E2E tests framework and OpenLineage tests#69212
Open
kacpermuda wants to merge 1 commit into
Open
Add providers E2E tests framework and OpenLineage tests#69212kacpermuda wants to merge 1 commit into
kacpermuda wants to merge 1 commit into
Conversation
2091603 to
a85933b
Compare
a85933b to
878b7c3
Compare
Contributor
|
Quickest fix: git fetch upstream main && git rebase upstream/main
rm uv.lock && uv lock
git add uv.lock && git rebase --continue
git push --force-with-leaseAutomated nudge — ignore if you're not ready to rebase. This comment is updated in place on future |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add framework for providers E2E tests and implement OpenLineage provider e2e tests to Airflow CI
The OpenLineage provider emits lineage events when Dags run, but until now there was no automated way in Airflow CI to verify those events are actually correct against a real, deployed Airflow stack. This PR introduces that capability: a self-contained e2e test harness that spins up Airflow via docker-compose, runs the provider system-test Dags, and asserts the OpenLineage events emitted by the transport match expected payloads. The tests run on demand (via
workflow_dispatch) and are triggered automatically by selective checks when theopenlineageorcommonproviders, theproviders-e2e-testsharness, or related files change.The approach follows the same pattern already established by the Task SDK integration tests and the Airflow e2e tests: a standalone directory under
providers-e2e-tests/openlineage/with its ownpyproject.toml,docker-compose.yaml, and pytest suite, invoked through a newbreeze testing providers-e2e-tests <provider>command.More providers can be added in the future if needed. These OL test do not rely on any external service, so they can easily be run in CI (no db, external api, google/amazon/azure service needed).
What's included:
providers-e2e-tests/— new top-level directory; each provider gets its own subdirectory with adocker-compose stack, tests, and
pyproject.toml.breeze testing providers-e2e-tests <provider>— spins up the stack and runs pytest.--airflow-version <ver>to test older Airflow + current providersfrom main (builds
apache/airflow:<ver>+ provider wheels). Required providers are declared in eachprovider's
pyproject.tomlunder[tool.e2e-tests] required-providers— nothing hardcoded in breeze.DAGs come from the existing
providers/openlineage/tests/system/openlineage/—prepare_dags.pycopies and strips their pytest-only footers at runtime. Events are captured via
VariableTransport(stores OL events in Airflow Variables); each DAG's
OpenLineageTestOperatorvalidates them — noexternal backend needed. A run that ends
successmeans lineage matched.I tried to add a new breeze command for this, but it's first time ever for me contributing in this area, so it may not be ideal, tried to follow an example of current code.
Was generative AI tooling used to co-author this PR?
Generated-by: Claude Sonnet 4.6 following the guidelines
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.