Skip to content

Commit 020f1de

Browse files
.
1 parent 09516b7 commit 020f1de

2 files changed

Lines changed: 54 additions & 13 deletions

File tree

tests/conftest.py

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,29 @@
5757
from collections.abc import Iterator
5858

5959
try:
60-
from anyio import create_memory_object_stream, create_task_group, EndOfStream
61-
from mcp.types import (
62-
JSONRPCMessage,
63-
JSONRPCNotification,
64-
JSONRPCRequest,
65-
)
66-
from mcp.shared.message import SessionMessage
6760
from httpx import (
6861
ASGITransport,
6962
Request as HttpxRequest,
7063
Response as HttpxResponse,
7164
AsyncByteStream,
7265
AsyncClient,
7366
)
67+
except ImportError:
68+
ASGITransport = None
69+
HttpxRequest = None
70+
HttpxResponse = None
71+
AsyncByteStream = None
72+
AsyncClient = None
73+
74+
75+
try:
76+
from anyio import create_memory_object_stream, create_task_group, EndOfStream
77+
from mcp.types import (
78+
JSONRPCMessage,
79+
JSONRPCNotification,
80+
JSONRPCRequest,
81+
)
82+
from mcp.shared.message import SessionMessage
7483
except ImportError:
7584
create_memory_object_stream = None
7685
create_task_group = None
@@ -81,12 +90,6 @@
8190
JSONRPCRequest = None
8291
SessionMessage = None
8392

84-
ASGITransport = None
85-
HttpxRequest = None
86-
HttpxResponse = None
87-
AsyncByteStream = None
88-
AsyncClient = None
89-
9093

9194
SENTRY_EVENT_SCHEMA = "./checkouts/data-schemas/relay/event.schema.json"
9295

@@ -1024,6 +1027,28 @@ def inner(events):
10241027
return inner
10251028

10261029

1030+
@pytest.fixture
1031+
def get_model_response():
1032+
def inner(response_content, serialize_pydantic=False):
1033+
model_request = HttpxRequest(
1034+
"POST",
1035+
"/responses",
1036+
)
1037+
1038+
if serialize_pydantic:
1039+
response_content = json.dumps(response_content.model_dump()).encode("utf-8")
1040+
1041+
response = HttpxResponse(
1042+
200,
1043+
request=model_request,
1044+
content=response_content,
1045+
)
1046+
1047+
return response
1048+
1049+
return inner
1050+
1051+
10271052
class MockServerRequestHandler(BaseHTTPRequestHandler):
10281053
def do_GET(self): # noqa: N802
10291054
# Process an HTTP GET request and return a response.

tests/integrations/anthropic/test_anthropic.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,22 @@ async def __call__(self, *args, **kwargs):
6767
)
6868

6969

70+
@pytest.fixture()
71+
def select_transactions_with_ai_client_spans():
72+
def inner(events, operation_name):
73+
return [
74+
transaction
75+
for transaction in events
76+
if transaction["type"] == "transaction"
77+
and any(
78+
span["data"].get("gen_ai.operation.name") == operation_name
79+
for span in transaction.get("spans", [])
80+
)
81+
]
82+
83+
return inner
84+
85+
7086
@pytest.mark.parametrize(
7187
"send_default_pii, include_prompts",
7288
[

0 commit comments

Comments
 (0)