diff --git a/airflow-core/tests/unit/cli/commands/test_dag_command.py b/airflow-core/tests/unit/cli/commands/test_dag_command.py index 183e80ee216b0..9e353fc1f5291 100644 --- a/airflow-core/tests/unit/cli/commands/test_dag_command.py +++ b/airflow-core/tests/unit/cli/commands/test_dag_command.py @@ -966,6 +966,23 @@ def test_dag_test_with_custom_timetable(self, mock_get_or_create_dagrun): dag_command.dag_test(cli_args) assert "data_interval" in mock_get_or_create_dagrun.call_args.kwargs + @mock.patch("airflow.models.dagrun.get_or_create_dagrun") + def test_dag_test_uses_current_time_as_dagrun_start_date( + self, mock_get_or_create_dagrun, time_machine + ): + run_started_at = timezone.make_aware(datetime(2026, 4, 29, 21, 4), timezone=timezone.utc) + time_machine.move_to(run_started_at, tick=False) + + cli_args = self.parser.parse_args( + ["dags", "test", "example_bash_operator", DEFAULT_DATE.isoformat()] + ) + + dag_command.dag_test(cli_args) + + assert mock_get_or_create_dagrun.call_args.kwargs["logical_date"] == DEFAULT_DATE + assert mock_get_or_create_dagrun.call_args.kwargs["run_after"] == run_started_at + assert mock_get_or_create_dagrun.call_args.kwargs["start_date"] == run_started_at + @mock.patch("airflow.models.dagrun.get_or_create_dagrun") def test_dag_with_parsing_context( self, mock_get_or_create_dagrun, testing_dag_bundle, configure_testing_dag_bundle diff --git a/task-sdk/src/airflow/sdk/definitions/dag.py b/task-sdk/src/airflow/sdk/definitions/dag.py index fd47de467fea4..a5c514411a307 100644 --- a/task-sdk/src/airflow/sdk/definitions/dag.py +++ b/task-sdk/src/airflow/sdk/definitions/dag.py @@ -1357,7 +1357,7 @@ def test( dr: DagRun = get_or_create_dagrun( dag=scheduler_dag, - start_date=logical_date or run_after, + start_date=run_after, logical_date=logical_date, data_interval=data_interval, run_after=run_after,