Skip to content

Commit 6ac119b

Browse files
committed
fix some more tests
1 parent ad4f10a commit 6ac119b

File tree

1 file changed

+66
-78
lines changed

1 file changed

+66
-78
lines changed

tests/integrations/openai_agents/test_openai_agents.py

Lines changed: 66 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -143,17 +143,14 @@ async def test_agent_invocation_span(
143143
assert transaction["contexts"]["trace"]["origin"] == "auto.ai.openai_agents"
144144

145145
assert invoke_agent_span["description"] == "invoke_agent test_agent"
146-
assert invoke_agent_span["data"]["gen_ai.request.messages"] == safe_serialize(
147-
[
148-
{
149-
"content": [
150-
{"text": "You are a helpful test assistant.", "type": "text"}
151-
],
152-
"role": "system",
153-
},
154-
{"content": [{"text": "Test input", "type": "text"}], "role": "user"},
155-
]
156-
)
146+
assert invoke_agent_span["data"]["gen_ai.request.messages"] == [
147+
{
148+
"content": [{"text": "You are a helpful test assistant.", "type": "text"}],
149+
"role": "system",
150+
},
151+
{"content": [{"text": "Test input", "type": "text"}], "role": "user"},
152+
]
153+
157154
assert (
158155
invoke_agent_span["data"]["gen_ai.response.text"]
159156
== "Hello, how can I help you?"
@@ -488,22 +485,16 @@ def simple_test_tool(message: str) -> str:
488485
assert ai_client_span1["data"]["gen_ai.agent.name"] == "test_agent"
489486
assert ai_client_span1["data"]["gen_ai.request.available_tools"] == available_tools
490487
assert ai_client_span1["data"]["gen_ai.request.max_tokens"] == 100
491-
assert ai_client_span1["data"]["gen_ai.request.messages"] == safe_serialize(
492-
[
493-
{
494-
"role": "system",
495-
"content": [
496-
{"type": "text", "text": "You are a helpful test assistant."}
497-
],
498-
},
499-
{
500-
"role": "user",
501-
"content": [
502-
{"type": "text", "text": "Please use the simple test tool"}
503-
],
504-
},
505-
]
506-
)
488+
assert ai_client_span1["data"]["gen_ai.request.messages"] == [
489+
{
490+
"role": "system",
491+
"content": [{"type": "text", "text": "You are a helpful test assistant."}],
492+
},
493+
{
494+
"role": "user",
495+
"content": [{"type": "text", "text": "Please use the simple test tool"}],
496+
},
497+
]
507498
assert ai_client_span1["data"]["gen_ai.request.model"] == "gpt-4"
508499
assert ai_client_span1["data"]["gen_ai.request.temperature"] == 0.7
509500
assert ai_client_span1["data"]["gen_ai.request.top_p"] == 1.0
@@ -564,49 +555,50 @@ def simple_test_tool(message: str) -> str:
564555
== available_tools
565556
)
566557
assert ai_client_span2["data"]["gen_ai.request.max_tokens"] == 100
567-
assert re.sub(
558+
559+
# Convert list to JSON string, do regex replacement, then parse back
560+
messages_json = json.dumps(ai_client_span2["data"]["gen_ai.request.messages"])
561+
messages_json_cleaned = re.sub(
568562
r"SerializationIterator\(.*\)",
569563
"NOT_CHECKED",
570-
ai_client_span2["data"]["gen_ai.request.messages"],
571-
) == safe_serialize(
572-
[
573-
{
574-
"role": "system",
575-
"content": [
576-
{"type": "text", "text": "You are a helpful test assistant."}
577-
],
578-
},
579-
{
580-
"role": "user",
581-
"content": [
582-
{"type": "text", "text": "Please use the simple test tool"}
583-
],
584-
},
585-
{
586-
"role": "assistant",
587-
"content": [
588-
{
589-
"arguments": '{"message": "hello"}',
590-
"call_id": "call_123",
591-
"name": "simple_test_tool",
592-
"type": "function_call",
593-
"id": "call_123",
594-
"function": "NOT_CHECKED",
595-
}
596-
],
597-
},
598-
{
599-
"role": "tool",
600-
"content": [
601-
{
602-
"call_id": "call_123",
603-
"output": "Tool executed with: hello",
604-
"type": "function_call_output",
605-
}
606-
],
607-
},
608-
]
564+
messages_json,
609565
)
566+
messages_cleaned = json.loads(messages_json_cleaned)
567+
568+
assert messages_cleaned == [
569+
{
570+
"role": "system",
571+
"content": [{"type": "text", "text": "You are a helpful test assistant."}],
572+
},
573+
{
574+
"role": "user",
575+
"content": [{"type": "text", "text": "Please use the simple test tool"}],
576+
},
577+
{
578+
"role": "assistant",
579+
"content": [
580+
{
581+
"arguments": '{"message": "hello"}',
582+
"call_id": "call_123",
583+
"name": "simple_test_tool",
584+
"type": "function_call",
585+
"id": "call_123",
586+
"function": "NOT_CHECKED",
587+
}
588+
],
589+
},
590+
{
591+
"role": "tool",
592+
"content": [
593+
{
594+
"call_id": "call_123",
595+
"output": "Tool executed with: hello",
596+
"type": "function_call_output",
597+
}
598+
],
599+
},
600+
]
601+
610602
assert ai_client_span2["data"]["gen_ai.request.model"] == "gpt-4"
611603
assert ai_client_span2["data"]["gen_ai.request.temperature"] == 0.7
612604
assert ai_client_span2["data"]["gen_ai.request.top_p"] == 1.0
@@ -1126,17 +1118,15 @@ def test_openai_agents_message_truncation(
11261118
assert "gen_ai.request.messages" in invoke_agent_span["data"]
11271119

11281120
messages_data = invoke_agent_span["data"]["gen_ai.request.messages"]
1129-
assert isinstance(messages_data, str)
1121+
assert isinstance(messages_data, list)
11301122

1131-
parsed_messages = json.loads(messages_data)
1132-
assert isinstance(parsed_messages, list)
1133-
assert len(parsed_messages) >= 1
1123+
assert len(messages_data) >= 1
11341124

1135-
result_size = len(messages_data.encode("utf-8"))
1125+
result_size = len(serialize(messages_data, is_vars=False))
11361126
assert result_size <= MAX_GEN_AI_MESSAGE_BYTES
11371127

11381128
total_original_size = len(large_system_prompt) + len(large_user_message)
1139-
total_parsed_size = sum(len(str(msg)) for msg in parsed_messages)
1129+
total_parsed_size = sum(len(str(msg)) for msg in messages_data)
11401130
assert total_parsed_size < total_original_size
11411131

11421132

@@ -1181,14 +1171,12 @@ def test_openai_agents_single_large_message_preservation(
11811171
assert "gen_ai.request.messages" in invoke_agent_span["data"]
11821172

11831173
messages_data = invoke_agent_span["data"]["gen_ai.request.messages"]
1184-
assert isinstance(messages_data, str)
1174+
assert isinstance(messages_data, list)
11851175

1186-
parsed_messages = json.loads(messages_data)
1187-
assert isinstance(parsed_messages, list)
1188-
assert len(parsed_messages) >= 1
1176+
assert len(messages_data) >= 1
11891177

11901178
user_message = next(
1191-
(msg for msg in parsed_messages if msg.get("role") == "user"), None
1179+
(msg for msg in messages_data if msg.get("role") == "user"), None
11921180
)
11931181
if user_message and "content" in user_message:
11941182
assert len(user_message["content"]) < len(huge_content)

0 commit comments

Comments
 (0)