From 5908c213f4ac4631daf35e89d365ae7ef9aa75a7 Mon Sep 17 00:00:00 2001 From: Deepthi Rao Date: Thu, 30 Jul 2026 12:38:47 -0400 Subject: [PATCH] fix(tutorials): install pytest-asyncio in async agent images so their tests can run The integration suite runs each agent's test_agent.py inside its published image. The async tutorial agents' tests use @pytest.mark.asyncio, but their Dockerfiles installed only .[dev] (which lacks pytest-asyncio), so the tests failed to import with 'ModuleNotFoundError: No module named pytest_asyncio' (exit code 2, all retries). 100_gemini_litellm installed just '.', so it had no test deps at all. Bring all 13 async agents in line with the already-working ones (e.g. 010_agent_chat, 020_state_machine): install '.[dev] pytest-asyncio httpx'. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../10_async/00_base/090_multi_agent_non_temporal/Dockerfile | 2 +- examples/tutorials/10_async/00_base/130_claude_code/Dockerfile | 2 +- examples/tutorials/10_async/00_base/140_codex/Dockerfile | 2 +- .../10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile | 2 +- .../10_temporal/070_open_ai_agents_sdk_tools/Dockerfile | 2 +- .../080_open_ai_agents_sdk_human_in_the_loop/Dockerfile | 2 +- .../10_async/10_temporal/090_claude_agents_sdk_mvp/Dockerfile | 2 +- .../10_async/10_temporal/100_gemini_litellm/Dockerfile | 2 +- .../tutorials/10_async/10_temporal/110_pydantic_ai/Dockerfile | 2 +- .../tutorials/10_async/10_temporal/120_openai_agents/Dockerfile | 2 +- .../tutorials/10_async/10_temporal/130_langgraph/Dockerfile | 2 +- .../tutorials/10_async/10_temporal/140_claude_code/Dockerfile | 2 +- examples/tutorials/10_async/10_temporal/150_codex/Dockerfile | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/tutorials/10_async/00_base/090_multi_agent_non_temporal/Dockerfile b/examples/tutorials/10_async/00_base/090_multi_agent_non_temporal/Dockerfile index 24ecf4484..7991600b3 100644 --- a/examples/tutorials/10_async/00_base/090_multi_agent_non_temporal/Dockerfile +++ b/examples/tutorials/10_async/00_base/090_multi_agent_non_temporal/Dockerfile @@ -39,7 +39,7 @@ COPY 10_async/00_base/090_multi_agent_non_temporal/tests /app/090_multi_agent_no COPY test_utils /app/test_utils # Install the required Python packages with dev dependencies -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/00_base/130_claude_code/Dockerfile b/examples/tutorials/10_async/00_base/130_claude_code/Dockerfile index e36b9e56d..ccbb52dbd 100644 --- a/examples/tutorials/10_async/00_base/130_claude_code/Dockerfile +++ b/examples/tutorials/10_async/00_base/130_claude_code/Dockerfile @@ -34,7 +34,7 @@ COPY 10_async/00_base/130_claude_code/project /app/130_claude_code/project COPY 10_async/00_base/130_claude_code/tests /app/130_claude_code/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/00_base/140_codex/Dockerfile b/examples/tutorials/10_async/00_base/140_codex/Dockerfile index 0dd839d8c..cfe1aab90 100644 --- a/examples/tutorials/10_async/00_base/140_codex/Dockerfile +++ b/examples/tutorials/10_async/00_base/140_codex/Dockerfile @@ -37,7 +37,7 @@ COPY 10_async/00_base/140_codex/project /app/140_codex/project COPY 10_async/00_base/140_codex/tests /app/140_codex/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app ENV AGENT_NAME=ab140-codex diff --git a/examples/tutorials/10_async/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile b/examples/tutorials/10_async/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile index d38075e55..854ddd491 100644 --- a/examples/tutorials/10_async/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile @@ -46,7 +46,7 @@ COPY 10_async/10_temporal/060_open_ai_agents_sdk_hello_world/tests /app/060_open COPY test_utils /app/test_utils # Install the required Python packages with dev dependencies -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/060_open_ai_agents_sdk_hello_world diff --git a/examples/tutorials/10_async/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile b/examples/tutorials/10_async/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile index d4b343603..169d70eea 100644 --- a/examples/tutorials/10_async/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile @@ -46,7 +46,7 @@ COPY 10_async/10_temporal/070_open_ai_agents_sdk_tools/tests /app/070_open_ai_ag COPY test_utils /app/test_utils # Install the required Python packages with dev dependencies -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/070_open_ai_agents_sdk_tools diff --git a/examples/tutorials/10_async/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile b/examples/tutorials/10_async/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile index cc4c06bf6..bfeae14ff 100644 --- a/examples/tutorials/10_async/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile @@ -46,7 +46,7 @@ COPY 10_async/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/tests /app/08 COPY test_utils /app/test_utils # Install the required Python packages with dev dependencies -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/080_open_ai_agents_sdk_human_in_the_loop diff --git a/examples/tutorials/10_async/10_temporal/090_claude_agents_sdk_mvp/Dockerfile b/examples/tutorials/10_async/10_temporal/090_claude_agents_sdk_mvp/Dockerfile index 5428e814a..ec0b5a189 100644 --- a/examples/tutorials/10_async/10_temporal/090_claude_agents_sdk_mvp/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/090_claude_agents_sdk_mvp/Dockerfile @@ -46,7 +46,7 @@ COPY 10_async/10_temporal/090_claude_agents_sdk_mvp/tests /app/090_claude_agents COPY test_utils /app/test_utils # Install the required Python packages with dev dependencies -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/090_claude_agents_sdk_mvp diff --git a/examples/tutorials/10_async/10_temporal/100_gemini_litellm/Dockerfile b/examples/tutorials/10_async/10_temporal/100_gemini_litellm/Dockerfile index b1b52a9a7..dadc536e3 100644 --- a/examples/tutorials/10_async/10_temporal/100_gemini_litellm/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/100_gemini_litellm/Dockerfile @@ -40,7 +40,7 @@ WORKDIR /app/100_gemini_litellm COPY 10_async/10_temporal/100_gemini_litellm/project /app/100_gemini_litellm/project # Install the required Python packages -RUN uv pip install --system . +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/100_gemini_litellm diff --git a/examples/tutorials/10_async/10_temporal/110_pydantic_ai/Dockerfile b/examples/tutorials/10_async/10_temporal/110_pydantic_ai/Dockerfile index 17b0db8a0..1a836b98f 100644 --- a/examples/tutorials/10_async/10_temporal/110_pydantic_ai/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/110_pydantic_ai/Dockerfile @@ -31,7 +31,7 @@ COPY 10_async/10_temporal/110_pydantic_ai/project /app/110_pydantic_ai/project COPY 10_async/10_temporal/110_pydantic_ai/tests /app/110_pydantic_ai/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/10_temporal/120_openai_agents/Dockerfile b/examples/tutorials/10_async/10_temporal/120_openai_agents/Dockerfile index 700f56cea..3e8991304 100644 --- a/examples/tutorials/10_async/10_temporal/120_openai_agents/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/120_openai_agents/Dockerfile @@ -31,7 +31,7 @@ COPY 10_async/10_temporal/120_openai_agents/project /app/120_openai_agents/proje COPY 10_async/10_temporal/120_openai_agents/tests /app/120_openai_agents/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/10_temporal/130_langgraph/Dockerfile b/examples/tutorials/10_async/10_temporal/130_langgraph/Dockerfile index 8a125ac72..87f46bf36 100644 --- a/examples/tutorials/10_async/10_temporal/130_langgraph/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/130_langgraph/Dockerfile @@ -31,7 +31,7 @@ COPY 10_async/10_temporal/130_langgraph/project /app/130_langgraph/project COPY 10_async/10_temporal/130_langgraph/tests /app/130_langgraph/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/10_temporal/140_claude_code/Dockerfile b/examples/tutorials/10_async/10_temporal/140_claude_code/Dockerfile index c909ee6c7..f90f27874 100644 --- a/examples/tutorials/10_async/10_temporal/140_claude_code/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/140_claude_code/Dockerfile @@ -34,7 +34,7 @@ COPY 10_async/10_temporal/140_claude_code/project /app/140_claude_code/project COPY 10_async/10_temporal/140_claude_code/tests /app/140_claude_code/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app diff --git a/examples/tutorials/10_async/10_temporal/150_codex/Dockerfile b/examples/tutorials/10_async/10_temporal/150_codex/Dockerfile index e861c7f33..7b1a7b299 100644 --- a/examples/tutorials/10_async/10_temporal/150_codex/Dockerfile +++ b/examples/tutorials/10_async/10_temporal/150_codex/Dockerfile @@ -37,7 +37,7 @@ COPY 10_async/10_temporal/150_codex/project /app/150_codex/project COPY 10_async/10_temporal/150_codex/tests /app/150_codex/tests COPY test_utils /app/test_utils -RUN uv pip install --system .[dev] +RUN uv pip install --system .[dev] pytest-asyncio httpx ENV PYTHONPATH=/app ENV AGENT_NAME=at150-codex