Skip to content

Commit be9f49f

Browse files
committed
Tests
1 parent bc74709 commit be9f49f

File tree

1 file changed

+111
-0
lines changed

1 file changed

+111
-0
lines changed

tests/test_agents.py

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@
7878
CustomTask,
7979
DurationSummary,
8080
FileSource,
81+
GeneratedImage,
82+
GeneratedImageItem,
8183
HiddenContextItem,
8284
InferenceOptions,
8385
Page,
@@ -1191,6 +1193,115 @@ async def test_stream_agent_response_assistant_message_content_types():
11911193
assert message.id == "1"
11921194

11931195

1196+
async def test_stream_agent_response_image_generation_events_default_data_url():
1197+
context = AgentContext(
1198+
previous_response_id=None, thread=thread, store=mock_store, request_context=None
1199+
)
1200+
result = make_result()
1201+
1202+
result.add_event(
1203+
RawResponsesStreamEvent(
1204+
type="raw_response_event",
1205+
data=Mock(
1206+
type="response.output_item.added",
1207+
item=Mock(type="image_generation_call", id="img_call_1"),
1208+
output_index=0,
1209+
sequence_number=0,
1210+
),
1211+
)
1212+
)
1213+
result.add_event(
1214+
RawResponsesStreamEvent(
1215+
type="raw_response_event",
1216+
data=Mock(
1217+
type="response.output_item.done",
1218+
item=Mock(
1219+
type="image_generation_call", id="img_call_1", result="dGVzdA=="
1220+
),
1221+
output_index=0,
1222+
sequence_number=1,
1223+
),
1224+
)
1225+
)
1226+
result.done()
1227+
1228+
stream = stream_agent_response(context, result)
1229+
event1 = await stream.__anext__()
1230+
assert isinstance(event1, ThreadItemAddedEvent)
1231+
assert isinstance(event1.item, GeneratedImageItem)
1232+
assert event1.item.type == "generated_image"
1233+
assert event1.item.id == "message_id"
1234+
assert event1.item.image is None
1235+
1236+
event2 = await stream.__anext__()
1237+
assert isinstance(event2, ThreadItemDoneEvent)
1238+
assert isinstance(event2.item, GeneratedImageItem)
1239+
assert event2.item.id == event1.item.id
1240+
assert event2.item.image == GeneratedImage(
1241+
id="img_call_1", url="data:image/png;base64,dGVzdA=="
1242+
)
1243+
1244+
with pytest.raises(StopAsyncIteration):
1245+
await stream.__anext__()
1246+
1247+
1248+
async def test_stream_agent_response_image_generation_events_with_async_converter():
1249+
context = AgentContext(
1250+
previous_response_id=None, thread=thread, store=mock_store, request_context=None
1251+
)
1252+
result = make_result()
1253+
1254+
result.add_event(
1255+
RawResponsesStreamEvent(
1256+
type="raw_response_event",
1257+
data=Mock(
1258+
type="response.output_item.added",
1259+
item=Mock(type="image_generation_call", id="img_call_1"),
1260+
output_index=0,
1261+
sequence_number=0,
1262+
),
1263+
)
1264+
)
1265+
result.add_event(
1266+
RawResponsesStreamEvent(
1267+
type="raw_response_event",
1268+
data=Mock(
1269+
type="response.output_item.done",
1270+
item=Mock(
1271+
type="image_generation_call", id="img_call_1", result="dGVzdA=="
1272+
),
1273+
output_index=0,
1274+
sequence_number=1,
1275+
),
1276+
)
1277+
)
1278+
result.done()
1279+
1280+
calls: list[str] = []
1281+
1282+
async def base64_to_generated_image(b64: str) -> GeneratedImage:
1283+
calls.append(b64)
1284+
return GeneratedImage(id="custom_img_1", url=f"https://example.com/{b64}")
1285+
1286+
stream = stream_agent_response(
1287+
context, result, base64_to_generated_image=base64_to_generated_image
1288+
)
1289+
event1 = await stream.__anext__()
1290+
assert isinstance(event1, ThreadItemAddedEvent)
1291+
assert isinstance(event1.item, GeneratedImageItem)
1292+
assert event1.item.image is None
1293+
1294+
event2 = await stream.__anext__()
1295+
assert isinstance(event2, ThreadItemDoneEvent)
1296+
assert isinstance(event2.item, GeneratedImageItem)
1297+
assert calls == ["dGVzdA=="]
1298+
assert event2.item.image == GeneratedImage(
1299+
id="custom_img_1", url="https://example.com/dGVzdA=="
1300+
)
1301+
with pytest.raises(StopAsyncIteration):
1302+
await stream.__anext__()
1303+
1304+
11941305
async def test_workflow_streams_first_thought():
11951306
context = AgentContext(
11961307
previous_response_id=None, thread=thread, store=mock_store, request_context=None

0 commit comments

Comments
 (0)