You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolve BaseOperator from airflow.sdk.bases.operator on Airflow 3,
eliminating the DeprecatedImportWarning that came from the legacy airflow.models.baseoperator path. Import resolution now prefers the
canonical Task SDK location and only falls back to the Airflow 2 path on
Airflow 2.
Reject concurrent run() calls on a single SubprocessPytestRunner
instance (fail-fast with TestExecutionError) to prevent a race on the
per-run temporary directory and process handle. Separate runner instances
remain fully independent, and the same instance can be reused for
sequential runs (e.g. task retries).
cancel() no longer holds the internal lock during its graceful
termination wait (up to grace_period seconds). The lock is now held only
to snapshot the process handle, so on_kill no longer serializes the
run's teardown or cleanup().
Wrap report-directory preparation so a user-supplied report_dir pointing
at a file (or an unwritable location) raises TestExecutionError per the
runner contract, instead of leaking a bare OSError.
Changed
Breaking: the test summary is now exposed only via the standard XCom return_value key. The previously-duplicated custom pytest_result key
has been removed. Downstream tasks that read xcom_pull(key="pytest_result")
must switch to xcom_pull(task_ids="<task>") (the default return_value).
Breaking: removed the custom push_result parameter. XCom output is
now controlled solely by Airflow's standard do_xcom_push (default True);
pass do_xcom_push=False to disable. Replace push_result=False with do_xcom_push=False.
Added
Documentation on installing the package in Docker/constrained environments
using Airflow's official constraint files.