Skip to content

Commit a7ccc99

Browse files
jedcunninghamkarenbraganz
authored andcommitted
Add a bundle for example dags when enabled (apache#45533)
Once we start parsing from bundles, we will have a separate bundle to represent the example dags, instead of simply adding them to the list of files from the dags folder like we do today.
1 parent 5bc5beb commit a7ccc99

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

airflow/dag_processing/bundles/manager.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,23 @@ def parse_config(self) -> None:
6464
"Bundle config is not a list. Check config value"
6565
" for section `dag_bundles` and key `backends`."
6666
)
67+
68+
# example dags!
69+
if conf.getboolean("core", "LOAD_EXAMPLES"):
70+
from airflow import example_dags
71+
72+
example_dag_folder = next(iter(example_dags.__path__))
73+
backends.append(
74+
{
75+
"name": "example_dags",
76+
"classpath": "airflow.dag_processing.bundles.local.LocalDagBundle",
77+
"kwargs": {
78+
"local_folder": example_dag_folder,
79+
"refresh_interval": conf.getint("scheduler", "dag_dir_list_interval"),
80+
},
81+
}
82+
)
83+
6784
seen = set()
6885
for cfg in backends:
6986
name = cfg["name"]

tests/dag_processing/bundles/test_dag_bundle_manager.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@
6868
)
6969
def test_parse_bundle_config(value, expected):
7070
"""Test that bundle_configs are read from configuration."""
71-
envs = {"AIRFLOW__DAG_BUNDLES__BACKENDS": value} if value else {}
71+
envs = {"AIRFLOW__CORE__LOAD_EXAMPLES": "False"}
72+
if value:
73+
envs["AIRFLOW__DAG_BUNDLES__BACKENDS"] = value
7274
cm = nullcontext()
7375
exp_fail = False
7476
if isinstance(expected, str):
@@ -133,6 +135,7 @@ def clear_db():
133135

134136

135137
@pytest.mark.db_test
138+
@conf_vars({("core", "LOAD_EXAMPLES"): "False"})
136139
def test_sync_bundles_to_db(clear_db):
137140
def _get_bundle_names_and_active():
138141
with create_session() as session:
@@ -167,3 +170,14 @@ def test_view_url(version):
167170
with patch.object(BaseDagBundle, "view_url") as view_url_mock:
168171
bundle_manager.view_url("my-test-bundle", version=version)
169172
view_url_mock.assert_called_once_with(version=version)
173+
174+
175+
def test_example_dags_bundle_added():
176+
manager = DagBundlesManager()
177+
manager.parse_config()
178+
assert "example_dags" in manager._bundle_config
179+
180+
with conf_vars({("core", "LOAD_EXAMPLES"): "False"}):
181+
manager = DagBundlesManager()
182+
manager.parse_config()
183+
assert "example_dags" not in manager._bundle_config

0 commit comments

Comments
 (0)