openai/openai-python

Public

mirrored from https://github.com/openai/openai-pythonAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v1.76.1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

tests/api_resources/evals/runs/test_output_items.py

263lines · modecode

1# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
3from __future__ import annotations
4
5import os
6from typing import Any, cast
7
8import pytest
9
10from openai import OpenAI, AsyncOpenAI
11from tests.utils import assert_matches_type
12from openai.pagination import SyncCursorPage, AsyncCursorPage
13from openai.types.evals.runs import OutputItemListResponse, OutputItemRetrieveResponse
14
15base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
16
17
18class TestOutputItems:
19 parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
20
21 @parametrize
22 def test_method_retrieve(self, client: OpenAI) -> None:
23 output_item = client.evals.runs.output_items.retrieve(
24 output_item_id="output_item_id",
25 eval_id="eval_id",
26 run_id="run_id",
27 )
28 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
29
30 @parametrize
31 def test_raw_response_retrieve(self, client: OpenAI) -> None:
32 response = client.evals.runs.output_items.with_raw_response.retrieve(
33 output_item_id="output_item_id",
34 eval_id="eval_id",
35 run_id="run_id",
36 )
37
38 assert response.is_closed is True
39 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
40 output_item = response.parse()
41 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
42
43 @parametrize
44 def test_streaming_response_retrieve(self, client: OpenAI) -> None:
45 with client.evals.runs.output_items.with_streaming_response.retrieve(
46 output_item_id="output_item_id",
47 eval_id="eval_id",
48 run_id="run_id",
49 ) as response:
50 assert not response.is_closed
51 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
52
53 output_item = response.parse()
54 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
55
56 assert cast(Any, response.is_closed) is True
57
58 @parametrize
59 def test_path_params_retrieve(self, client: OpenAI) -> None:
60 with pytest.raises(ValueError, match=r"Expected a non-empty value for `eval_id` but received ''"):
61 client.evals.runs.output_items.with_raw_response.retrieve(
62 output_item_id="output_item_id",
63 eval_id="",
64 run_id="run_id",
65 )
66
67 with pytest.raises(ValueError, match=r"Expected a non-empty value for `run_id` but received ''"):
68 client.evals.runs.output_items.with_raw_response.retrieve(
69 output_item_id="output_item_id",
70 eval_id="eval_id",
71 run_id="",
72 )
73
74 with pytest.raises(ValueError, match=r"Expected a non-empty value for `output_item_id` but received ''"):
75 client.evals.runs.output_items.with_raw_response.retrieve(
76 output_item_id="",
77 eval_id="eval_id",
78 run_id="run_id",
79 )
80
81 @parametrize
82 def test_method_list(self, client: OpenAI) -> None:
83 output_item = client.evals.runs.output_items.list(
84 run_id="run_id",
85 eval_id="eval_id",
86 )
87 assert_matches_type(SyncCursorPage[OutputItemListResponse], output_item, path=["response"])
88
89 @parametrize
90 def test_method_list_with_all_params(self, client: OpenAI) -> None:
91 output_item = client.evals.runs.output_items.list(
92 run_id="run_id",
93 eval_id="eval_id",
94 after="after",
95 limit=0,
96 order="asc",
97 status="fail",
98 )
99 assert_matches_type(SyncCursorPage[OutputItemListResponse], output_item, path=["response"])
100
101 @parametrize
102 def test_raw_response_list(self, client: OpenAI) -> None:
103 response = client.evals.runs.output_items.with_raw_response.list(
104 run_id="run_id",
105 eval_id="eval_id",
106 )
107
108 assert response.is_closed is True
109 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
110 output_item = response.parse()
111 assert_matches_type(SyncCursorPage[OutputItemListResponse], output_item, path=["response"])
112
113 @parametrize
114 def test_streaming_response_list(self, client: OpenAI) -> None:
115 with client.evals.runs.output_items.with_streaming_response.list(
116 run_id="run_id",
117 eval_id="eval_id",
118 ) as response:
119 assert not response.is_closed
120 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
121
122 output_item = response.parse()
123 assert_matches_type(SyncCursorPage[OutputItemListResponse], output_item, path=["response"])
124
125 assert cast(Any, response.is_closed) is True
126
127 @parametrize
128 def test_path_params_list(self, client: OpenAI) -> None:
129 with pytest.raises(ValueError, match=r"Expected a non-empty value for `eval_id` but received ''"):
130 client.evals.runs.output_items.with_raw_response.list(
131 run_id="run_id",
132 eval_id="",
133 )
134
135 with pytest.raises(ValueError, match=r"Expected a non-empty value for `run_id` but received ''"):
136 client.evals.runs.output_items.with_raw_response.list(
137 run_id="",
138 eval_id="eval_id",
139 )
140
141
142class TestAsyncOutputItems:
143 parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"])
144
145 @parametrize
146 async def test_method_retrieve(self, async_client: AsyncOpenAI) -> None:
147 output_item = await async_client.evals.runs.output_items.retrieve(
148 output_item_id="output_item_id",
149 eval_id="eval_id",
150 run_id="run_id",
151 )
152 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
153
154 @parametrize
155 async def test_raw_response_retrieve(self, async_client: AsyncOpenAI) -> None:
156 response = await async_client.evals.runs.output_items.with_raw_response.retrieve(
157 output_item_id="output_item_id",
158 eval_id="eval_id",
159 run_id="run_id",
160 )
161
162 assert response.is_closed is True
163 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
164 output_item = response.parse()
165 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
166
167 @parametrize
168 async def test_streaming_response_retrieve(self, async_client: AsyncOpenAI) -> None:
169 async with async_client.evals.runs.output_items.with_streaming_response.retrieve(
170 output_item_id="output_item_id",
171 eval_id="eval_id",
172 run_id="run_id",
173 ) as response:
174 assert not response.is_closed
175 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
176
177 output_item = await response.parse()
178 assert_matches_type(OutputItemRetrieveResponse, output_item, path=["response"])
179
180 assert cast(Any, response.is_closed) is True
181
182 @parametrize
183 async def test_path_params_retrieve(self, async_client: AsyncOpenAI) -> None:
184 with pytest.raises(ValueError, match=r"Expected a non-empty value for `eval_id` but received ''"):
185 await async_client.evals.runs.output_items.with_raw_response.retrieve(
186 output_item_id="output_item_id",
187 eval_id="",
188 run_id="run_id",
189 )
190
191 with pytest.raises(ValueError, match=r"Expected a non-empty value for `run_id` but received ''"):
192 await async_client.evals.runs.output_items.with_raw_response.retrieve(
193 output_item_id="output_item_id",
194 eval_id="eval_id",
195 run_id="",
196 )
197
198 with pytest.raises(ValueError, match=r"Expected a non-empty value for `output_item_id` but received ''"):
199 await async_client.evals.runs.output_items.with_raw_response.retrieve(
200 output_item_id="",
201 eval_id="eval_id",
202 run_id="run_id",
203 )
204
205 @parametrize
206 async def test_method_list(self, async_client: AsyncOpenAI) -> None:
207 output_item = await async_client.evals.runs.output_items.list(
208 run_id="run_id",
209 eval_id="eval_id",
210 )
211 assert_matches_type(AsyncCursorPage[OutputItemListResponse], output_item, path=["response"])
212
213 @parametrize
214 async def test_method_list_with_all_params(self, async_client: AsyncOpenAI) -> None:
215 output_item = await async_client.evals.runs.output_items.list(
216 run_id="run_id",
217 eval_id="eval_id",
218 after="after",
219 limit=0,
220 order="asc",
221 status="fail",
222 )
223 assert_matches_type(AsyncCursorPage[OutputItemListResponse], output_item, path=["response"])
224
225 @parametrize
226 async def test_raw_response_list(self, async_client: AsyncOpenAI) -> None:
227 response = await async_client.evals.runs.output_items.with_raw_response.list(
228 run_id="run_id",
229 eval_id="eval_id",
230 )
231
232 assert response.is_closed is True
233 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
234 output_item = response.parse()
235 assert_matches_type(AsyncCursorPage[OutputItemListResponse], output_item, path=["response"])
236
237 @parametrize
238 async def test_streaming_response_list(self, async_client: AsyncOpenAI) -> None:
239 async with async_client.evals.runs.output_items.with_streaming_response.list(
240 run_id="run_id",
241 eval_id="eval_id",
242 ) as response:
243 assert not response.is_closed
244 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
245
246 output_item = await response.parse()
247 assert_matches_type(AsyncCursorPage[OutputItemListResponse], output_item, path=["response"])
248
249 assert cast(Any, response.is_closed) is True
250
251 @parametrize
252 async def test_path_params_list(self, async_client: AsyncOpenAI) -> None:
253 with pytest.raises(ValueError, match=r"Expected a non-empty value for `eval_id` but received ''"):
254 await async_client.evals.runs.output_items.with_raw_response.list(
255 run_id="run_id",
256 eval_id="",
257 )
258
259 with pytest.raises(ValueError, match=r"Expected a non-empty value for `run_id` but received ''"):
260 await async_client.evals.runs.output_items.with_raw_response.list(
261 run_id="",
262 eval_id="eval_id",
263 )
264