This is an automated email from the ASF dual-hosted git repository. rahulvats pushed a commit to branch backpt-5392 in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 96c590d6b0c5924ced525087cecc74c290cccfa1 Author: Rahul Vats <[email protected]> AuthorDate: Fri Aug 1 10:00:33 2025 +0530 Fix dag_versions property when created_dag_version is None with bundle_version set (#53952) 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 3feb0f8794d..43512c50558 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 9d76ffabc1c..63940b25b49 100644 --- a/airflow-core/tests/unit/models/test_dagrun.py +++ b/airflow-core/tests/unit/models/test_dagrun.py @@ -1244,6 +1244,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"),
