potiuk opened a new pull request, #76179: URL: https://github.com/apache/airflow/pull/76179
`TestDockerDecorator::test_basic_docker_operator` failed intermittently with `Timeout >60.0s` in the lowest-dependencies providers job (for example https://github.com/apache/airflow/actions/runs/41233228877/job/124633951313), while the rest of the module passed. On a fresh runner, whichever test of the module runs a container first has to pull `python:3.9-slim` (13s in that run) and start the first container on a cold Docker daemon (31s). Together with the task start-up, that exceeded the 60s execution timeout. A module-scoped `warm_up_docker` fixture now pulls the image and runs one throwaway container, so that one-time cost counts against the 180s setup timeout instead. Only the tests that actually run containers request it, so the tests that just build Dags or operators still run without Docker. The image name is now a single `PYTHON_IMAGE` constant, so the fixture warms exactly the image the tests use. Checked locally with the image removed first (`docker rmi python:3.9-slim`): the whole module passes (38 passed, 2 skipped) through `breeze run pytest ... --setup-timeout=180 --execution-timeout=60 --timeouts-order=moi`, the timeouts CI uses. That run had the fixture applied to every test; it was narrowed to the container-running tests afterwards. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 5) Generated-by: Claude Code (Opus 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
