diff --git a/providers/standard/src/airflow/providers/standard/sensors/time.py b/providers/standard/src/airflow/providers/standard/sensors/time.py index 6d72c29fb4a81..a7fcce9a282c9 100644 --- a/providers/standard/src/airflow/providers/standard/sensors/time.py +++ b/providers/standard/src/airflow/providers/standard/sensors/time.py @@ -116,9 +116,11 @@ def execute(self, context: Context) -> None: ), method_name="execute_complete", ) + else: + super().execute(context) - def execute_complete(self, context: Context) -> None: - return + def execute_complete(self, context: Context, event: Any = None) -> None: + return None def poke(self, context: Context) -> bool: self.log.info("Checking if the time (%s) has come", self.target_datetime) diff --git a/providers/standard/tests/unit/standard/sensors/test_time.py b/providers/standard/tests/unit/standard/sensors/test_time.py index 1cec8de4a4874..bcc2e44fee8ad 100644 --- a/providers/standard/tests/unit/standard/sensors/test_time.py +++ b/providers/standard/tests/unit/standard/sensors/test_time.py @@ -124,3 +124,17 @@ def test_task_is_deferred(self): assert exc_info.value.trigger.moment == pendulum.datetime(2020, 7, 7, 10) assert exc_info.value.kwargs is None assert exc_info.value.method_name == "execute_complete" + + def test_execute_complete_accepts_event(self): + """Ensure execute_complete supports the 'event' kwarg when deferrable=True.""" + with DAG( + dag_id="test_execute_complete_accepts_event", + schedule=None, + start_date=datetime(2020, 1, 1), # Matches above + ): + op = TimeSensor(task_id="test", target_time=time(10, 0), deferrable=True) + + try: + op.execute_complete(context={}, event={"status": "success"}) + except TypeError as e: + pytest.fail(f"TypeError raised: {e}")