pierrejeambrun commented on code in PR #46484:
URL: https://github.com/apache/airflow/pull/46484#discussion_r1965717886


##########
tests/api_fastapi/core_api/routes/public/test_dag_run.py:
##########
@@ -146,14 +148,41 @@ def setup(request, dag_maker, session=None):
     )
 
     dag_maker.sync_dagbag_to_db()
-    dag_maker.dag_model
     dag_maker.dag_model.has_task_concurrency_limits = True
     session.merge(ti1)
     session.merge(ti2)
     session.merge(dag_maker.dag_model)
     session.commit()
 
 
+def get_dag_versions_dict(dag_version: DagVersion):
+    return DagVersionResponse.model_validate(dag_version, 
from_attributes=True).model_dump(mode="json")
+
+
+def get_dag_run_dict(run: DagRun):
+    return {
+        "dag_run_id": run.run_id,
+        "dag_id": run.dag_id,
+        "logical_date": from_datetime_to_zulu_without_ms(run.logical_date),
+        "queued_at": from_datetime_to_zulu(run.queued_at) if run.queued_at 
else None,
+        "run_after": from_datetime_to_zulu_without_ms(run.run_after),
+        "start_date": from_datetime_to_zulu_without_ms(run.start_date),
+        "end_date": from_datetime_to_zulu(run.end_date),
+        "data_interval_start": 
from_datetime_to_zulu_without_ms(run.data_interval_start),
+        "data_interval_end": 
from_datetime_to_zulu_without_ms(run.data_interval_end),
+        "last_scheduling_decision": (
+            from_datetime_to_zulu(run.last_scheduling_decision) if 
run.last_scheduling_decision else None
+        ),
+        "run_type": run.run_type,
+        "state": run.state,
+        "external_trigger": run.external_trigger,
+        "triggered_by": run.triggered_by.value,
+        "conf": run.conf,
+        "note": run.note,
+        "dag_versions": [get_dag_versions_dict(dag_version) for dag_version in 
run.dag_versions],

Review Comment:
   ```suggestion
           "dag_versions": [get_dag_version_dict(dag_version) for dag_version 
in run.dag_versions],
   ```
   
   or
   
   ```suggestion
           "dag_versions": get_dag_versions_dict(run.dag_versions),
   ```



##########
airflow/models/dagrun.py:
##########
@@ -314,7 +314,11 @@ def validate_run_id(self, key: str, run_id: str) -> str | 
None:
     @property
     def dag_versions(self) -> list[DagVersion]:
         """Return the DAG versions associated with the TIs of this DagRun."""
-        dag_versions = list(dict.fromkeys(list(self._tih_dag_versions) + 
list(self._ti_dag_versions)))
+        dag_versions = [
+            dv
+            for dv in dict.fromkeys(list(self._tih_dag_versions) + 
list(self._ti_dag_versions))
+            if dv is not None
+        ]

Review Comment:
   Looks good to me.



##########
tests/api_fastapi/conftest.py:
##########
@@ -49,15 +49,7 @@ def create_test_client(apps="all"):
 
 
 @pytest.fixture
-def make_dag_with_multiple_versions(dag_maker, session):
-    """
-    Create DAG with multiple versions
-
-    Version 1 will have 1 task, version 2 will have 2 tasks, and version 3 
will have 3 tasks.
-
-    Configure the associated dag_bundles.
-    """
-
+def configure_git_connection_for_dag_bundle(session):

Review Comment:
   Nice



##########
tests/api_fastapi/core_api/routes/public/test_dag_run.py:
##########
@@ -146,14 +148,41 @@ def setup(request, dag_maker, session=None):
     )
 
     dag_maker.sync_dagbag_to_db()
-    dag_maker.dag_model
     dag_maker.dag_model.has_task_concurrency_limits = True
     session.merge(ti1)
     session.merge(ti2)
     session.merge(dag_maker.dag_model)
     session.commit()
 
 
+def get_dag_versions_dict(dag_version: DagVersion):
+    return DagVersionResponse.model_validate(dag_version, 
from_attributes=True).model_dump(mode="json")

Review Comment:
   I think we can omit it
   ```suggestion
       return DagVersionResponse.model_validate(dag_version, 
from_attributes=True).model_dump()
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to