Skip to content

Commit a0790af

Browse files
authored
tiny fix claude agent sdk test (#216)
1 parent 97700d8 commit a0790af

File tree

4 files changed

+43
-63
lines changed

4 files changed

+43
-63
lines changed

tests/test_instrumentations/test_claude_agent/test_claude_sdk_client.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
import asyncio
1+
import pytest
22

33
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
44
from claude_agent_sdk import ClaudeSDKClient
55

66
from mock_transport import MockClaudeTransport
77

88

9-
def test_claude_agent_query(span_exporter: InMemorySpanExporter):
10-
async def _collect_messages():
11-
async with ClaudeSDKClient(transport=MockClaudeTransport()) as client:
12-
await client.query("What's the capital of France?")
13-
async for _ in client.receive_response():
14-
pass
9+
@pytest.mark.asyncio
10+
async def test_claude_agent_query(span_exporter: InMemorySpanExporter):
11+
async with ClaudeSDKClient(transport=MockClaudeTransport()) as client:
12+
await client.query("What's the capital of France?")
13+
async for _ in client.receive_response():
14+
pass
1515

16-
await client.query("What's the population of that city?")
17-
async for _ in client.receive_response():
18-
pass
19-
20-
asyncio.run(_collect_messages())
16+
await client.query("What's the population of that city?")
17+
async for _ in client.receive_response():
18+
pass
2119

2220
spans_tuple = span_exporter.get_finished_spans()
2321
spans = sorted(list(spans_tuple), key=lambda x: x.start_time)

tests/test_instrumentations/test_claude_agent/test_query.py

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,27 @@
1-
import asyncio
1+
import claude_agent_sdk
2+
import pytest
23

34
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
45
from claude_agent_sdk import ClaudeAgentOptions
5-
import claude_agent_sdk
66

77
from mock_transport import MockClaudeTransport
88

9-
# Note: can not use alias "query" aka "from claude_agent_sdk import query" because it is not wrapped by Laminar
109

11-
12-
def test_claude_agent_query(span_exporter: InMemorySpanExporter):
10+
@pytest.mark.asyncio
11+
async def test_claude_agent_query(span_exporter: InMemorySpanExporter):
1312
options = ClaudeAgentOptions(
1413
model="claude-sonnet-4-5",
1514
system_prompt="You are an expert software engineer.",
1615
permission_mode="acceptEdits",
1716
)
1817

19-
async def _collect_messages():
20-
messages = []
21-
async for message in claude_agent_sdk.query(
22-
# prompt="Create a readme doc for the test_claude_agent package. Then delete it. Return task status.",
23-
prompt="What is the capital of France?",
24-
options=options,
25-
transport=MockClaudeTransport(
26-
auto_respond_on_connect=True, close_after_responses=True
27-
),
28-
):
29-
messages.append(message)
30-
return messages
31-
32-
for _ in asyncio.run(_collect_messages()):
18+
async for message in claude_agent_sdk.query(
19+
prompt="What is the capital of France?",
20+
options=options,
21+
transport=MockClaudeTransport(
22+
auto_respond_on_connect=True, close_after_responses=True
23+
),
24+
):
3325
pass
3426

3527
spans = span_exporter.get_finished_spans()

tests/test_instrumentations/test_claude_agent/test_query_with_alias.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,26 @@
1-
import asyncio
1+
import pytest
22

33
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
44
from claude_agent_sdk import ClaudeAgentOptions, query as claude_query
55

66
from mock_transport import MockClaudeTransport
77

88

9-
def test_claude_agent_query(span_exporter: InMemorySpanExporter):
9+
@pytest.mark.asyncio
10+
async def test_claude_agent_query(span_exporter: InMemorySpanExporter):
1011
options = ClaudeAgentOptions(
1112
model="claude-sonnet-4-5",
1213
system_prompt="You are an expert software engineer.",
1314
permission_mode="acceptEdits",
1415
)
1516

16-
async def _collect_messages():
17-
messages = []
18-
async for message in claude_query(
19-
# prompt="Create a readme doc for the test_claude_agent package. Then delete it. Return task status.",
20-
prompt="What is the capital of France?",
21-
options=options,
22-
transport=MockClaudeTransport(
23-
auto_respond_on_connect=True, close_after_responses=True
24-
),
25-
):
26-
messages.append(message)
27-
return messages
28-
29-
for _ in asyncio.run(_collect_messages()):
17+
async for message in claude_query(
18+
prompt="What is the capital of France?",
19+
options=options,
20+
transport=MockClaudeTransport(
21+
auto_respond_on_connect=True, close_after_responses=True
22+
),
23+
):
3024
pass
3125

3226
spans = span_exporter.get_finished_spans()

tests/test_instrumentations/test_claude_agent/test_tool.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import asyncio
1+
import pytest
22
from typing import Any
33
from claude_agent_sdk import (
44
tool,
@@ -31,31 +31,27 @@ async def get_time(args: dict[str, Any]) -> dict[str, Any]:
3131
return {"content": [{"type": "text", "text": f"Current time: {current_time}"}]}
3232

3333

34-
def test_claude_agent_tool(span_exporter: InMemorySpanExporter):
34+
@pytest.mark.asyncio
35+
async def test_claude_agent_tool(span_exporter: InMemorySpanExporter):
3536
my_server = create_sdk_mcp_server(
3637
name="utilities", version="1.0.0", tools=[calculate, get_time]
3738
)
3839

39-
# Configure options with the server
4040
options = ClaudeAgentOptions(
4141
mcp_servers={"utils": my_server},
4242
allowed_tools=["mcp__utils__calculate", "mcp__utils__get_time"],
4343
)
4444

45-
# Use ClaudeSDKClient for interactive tool usage
46-
async def _collect_messages():
47-
async with ClaudeSDKClient(
48-
options=options, transport=MockClaudeTransport()
49-
) as client:
50-
await client.query("What's 123 * 456?")
51-
async for _ in client.receive_response():
52-
pass
45+
async with ClaudeSDKClient(
46+
options=options, transport=MockClaudeTransport()
47+
) as client:
48+
await client.query("What's 123 * 456?")
49+
async for _ in client.receive_response():
50+
pass
5351

54-
await client.query("What time is it now?")
55-
async for _ in client.receive_response():
56-
pass
57-
58-
asyncio.run(_collect_messages())
52+
await client.query("What time is it now?")
53+
async for _ in client.receive_response():
54+
pass
5955

6056
spans_tuple = span_exporter.get_finished_spans()
6157
spans = sorted(list(spans_tuple), key=lambda x: x.start_time)

0 commit comments

Comments
 (0)