This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-0-test by this push:
new 820cb2b7a04 Fix dag_versions property when created_dag_version is None
with bundle_version set (#53952) (#54010)
820cb2b7a04 is described below
commit 820cb2b7a048388c0c16c2de6369fb67432b7a5c
Author: Rahul Vats <[email protected]>
AuthorDate: Mon Aug 11 02:51:38 2025 +0530
Fix dag_versions property when created_dag_version is None with
bundle_version set (#53952) (#54010)
Fix dag_versions property when created_dag_version is None with
bundle_version set
(cherry picked from commit 79e6fd398e765ea848714c6b55e8203b185b1139)
---
airflow-core/src/airflow/models/dagrun.py | 2 +-
airflow-core/tests/unit/models/test_dagrun.py | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/airflow-core/src/airflow/models/dagrun.py
b/airflow-core/src/airflow/models/dagrun.py
index fff7e0636d8..97baf2832b0 100644
--- a/airflow-core/src/airflow/models/dagrun.py
+++ b/airflow-core/src/airflow/models/dagrun.py
@@ -350,7 +350,7 @@ class DagRun(Base, LoggingMixin):
"""Return the DAG versions associated with the TIs of this DagRun."""
# when the dag is in a versioned bundle, we keep the dag version fixed
if self.bundle_version:
- return [self.created_dag_version]
+ return [self.created_dag_version] if self.created_dag_version is
not None else []
dag_versions = [
dv
for dv in dict.fromkeys(list(self._tih_dag_versions) +
list(self._ti_dag_versions))
diff --git a/airflow-core/tests/unit/models/test_dagrun.py
b/airflow-core/tests/unit/models/test_dagrun.py
index d6e2219e605..3936f1ca758 100644
--- a/airflow-core/tests/unit/models/test_dagrun.py
+++ b/airflow-core/tests/unit/models/test_dagrun.py
@@ -1252,6 +1252,27 @@ class TestDagRun:
# the latest task instance dag_version
assert dag_run.version_number == dag_v.version_number
+ def test_dag_run_dag_versions_with_null_created_dag_version(self,
dag_maker, session):
+ """Test that dag_versions returns empty list when created_dag_version
is None and bundle_version is populated."""
+ with dag_maker(
+ "test_dag_run_null_created_dag_version",
+ schedule=datetime.timedelta(days=1),
+ start_date=DEFAULT_DATE,
+ ):
+ EmptyOperator(task_id="empty")
+ dag_run = dag_maker.create_dagrun()
+
+ dag_run.bundle_version = "some_bundle_version"
+ dag_run.created_dag_version_id = None
+ dag_run.created_dag_version = None
+ session.merge(dag_run)
+ session.flush()
+
+ # This should return empty list, not [None]
+ assert dag_run.dag_versions == []
+ assert isinstance(dag_run.dag_versions, list)
+ assert len(dag_run.dag_versions) == 0
+
@pytest.mark.parametrize(
("run_type", "expected_tis"),