4848from sentry_sdk .transport import Transport
4949from sentry_sdk .utils import reraise
5050
51+ try :
52+ import openai
53+ except ImportError :
54+ openai = None
55+
56+
5157from tests import _warning_recorder , _warning_recorder_mgr
5258
5359from typing import TYPE_CHECKING
@@ -1033,10 +1039,11 @@ def inner(events, include_event_type=True):
10331039
10341040@pytest .fixture
10351041def get_model_response ():
1036- def inner (response_content , serialize_pydantic = False ):
1042+ def inner (response_content , serialize_pydantic = False , request_headers = {} ):
10371043 model_request = HttpxRequest (
10381044 "POST" ,
10391045 "/responses" ,
1046+ headers = request_headers ,
10401047 )
10411048
10421049 if serialize_pydantic :
@@ -1053,6 +1060,45 @@ def inner(response_content, serialize_pydantic=False):
10531060 return inner
10541061
10551062
1063+ @pytest .fixture
1064+ def nonstreaming_responses_model_response ():
1065+ return openai .types .responses .Response (
1066+ id = "resp_123" ,
1067+ output = [
1068+ openai .types .responses .ResponseOutputMessage (
1069+ id = "msg_123" ,
1070+ type = "message" ,
1071+ status = "completed" ,
1072+ content = [
1073+ openai .types .responses .ResponseOutputText (
1074+ text = "Hello, how can I help you?" ,
1075+ type = "output_text" ,
1076+ annotations = [],
1077+ )
1078+ ],
1079+ role = "assistant" ,
1080+ )
1081+ ],
1082+ parallel_tool_calls = False ,
1083+ tool_choice = "none" ,
1084+ tools = [],
1085+ created_at = 10000000 ,
1086+ model = "gpt-4" ,
1087+ object = "response" ,
1088+ usage = openai .types .responses .ResponseUsage (
1089+ input_tokens = 10 ,
1090+ input_tokens_details = openai .types .responses .response_usage .InputTokensDetails (
1091+ cached_tokens = 0 ,
1092+ ),
1093+ output_tokens = 20 ,
1094+ output_tokens_details = openai .types .responses .response_usage .OutputTokensDetails (
1095+ reasoning_tokens = 5 ,
1096+ ),
1097+ total_tokens = 30 ,
1098+ ),
1099+ )
1100+
1101+
10561102class MockServerRequestHandler (BaseHTTPRequestHandler ):
10571103 def do_GET (self ): # noqa: N802
10581104 # Process an HTTP GET request and return a response.
0 commit comments