main
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.types.fine_tuning.alpha import (
13 GraderRunResponse,
14 GraderValidateResponse,
15)
16
17base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
18
19
20class TestGraders:
21 parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
22
23 @parametrize
24 def test_method_run(self, client: OpenAI) -> None:
25 grader = client.fine_tuning.alpha.graders.run(
26 grader={
27 "input": "input",
28 "name": "name",
29 "operation": "eq",
30 "reference": "reference",
31 "type": "string_check",
32 },
33 model_sample="model_sample",
34 )
35 assert_matches_type(GraderRunResponse, grader, path=["response"])
36
37 @parametrize
38 def test_method_run_with_all_params(self, client: OpenAI) -> None:
39 grader = client.fine_tuning.alpha.graders.run(
40 grader={
41 "input": "input",
42 "name": "name",
43 "operation": "eq",
44 "reference": "reference",
45 "type": "string_check",
46 },
47 model_sample="model_sample",
48 item={},
49 )
50 assert_matches_type(GraderRunResponse, grader, path=["response"])
51
52 @parametrize
53 def test_raw_response_run(self, client: OpenAI) -> None:
54 response = client.fine_tuning.alpha.graders.with_raw_response.run(
55 grader={
56 "input": "input",
57 "name": "name",
58 "operation": "eq",
59 "reference": "reference",
60 "type": "string_check",
61 },
62 model_sample="model_sample",
63 )
64
65 assert response.is_closed is True
66 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
67 grader = response.parse()
68 assert_matches_type(GraderRunResponse, grader, path=["response"])
69
70 @parametrize
71 def test_streaming_response_run(self, client: OpenAI) -> None:
72 with client.fine_tuning.alpha.graders.with_streaming_response.run(
73 grader={
74 "input": "input",
75 "name": "name",
76 "operation": "eq",
77 "reference": "reference",
78 "type": "string_check",
79 },
80 model_sample="model_sample",
81 ) as response:
82 assert not response.is_closed
83 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
84
85 grader = response.parse()
86 assert_matches_type(GraderRunResponse, grader, path=["response"])
87
88 assert cast(Any, response.is_closed) is True
89
90 @parametrize
91 def test_method_validate(self, client: OpenAI) -> None:
92 grader = client.fine_tuning.alpha.graders.validate(
93 grader={
94 "input": "input",
95 "name": "name",
96 "operation": "eq",
97 "reference": "reference",
98 "type": "string_check",
99 },
100 )
101 assert_matches_type(GraderValidateResponse, grader, path=["response"])
102
103 @parametrize
104 def test_method_validate_with_all_params(self, client: OpenAI) -> None:
105 grader = client.fine_tuning.alpha.graders.validate(
106 grader={
107 "input": "input",
108 "name": "name",
109 "operation": "eq",
110 "reference": "reference",
111 "type": "string_check",
112 },
113 )
114 assert_matches_type(GraderValidateResponse, grader, path=["response"])
115
116 @parametrize
117 def test_raw_response_validate(self, client: OpenAI) -> None:
118 response = client.fine_tuning.alpha.graders.with_raw_response.validate(
119 grader={
120 "input": "input",
121 "name": "name",
122 "operation": "eq",
123 "reference": "reference",
124 "type": "string_check",
125 },
126 )
127
128 assert response.is_closed is True
129 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
130 grader = response.parse()
131 assert_matches_type(GraderValidateResponse, grader, path=["response"])
132
133 @parametrize
134 def test_streaming_response_validate(self, client: OpenAI) -> None:
135 with client.fine_tuning.alpha.graders.with_streaming_response.validate(
136 grader={
137 "input": "input",
138 "name": "name",
139 "operation": "eq",
140 "reference": "reference",
141 "type": "string_check",
142 },
143 ) as response:
144 assert not response.is_closed
145 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
146
147 grader = response.parse()
148 assert_matches_type(GraderValidateResponse, grader, path=["response"])
149
150 assert cast(Any, response.is_closed) is True
151
152
153class TestAsyncGraders:
154 parametrize = pytest.mark.parametrize(
155 "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
156 )
157
158 @parametrize
159 async def test_method_run(self, async_client: AsyncOpenAI) -> None:
160 grader = await async_client.fine_tuning.alpha.graders.run(
161 grader={
162 "input": "input",
163 "name": "name",
164 "operation": "eq",
165 "reference": "reference",
166 "type": "string_check",
167 },
168 model_sample="model_sample",
169 )
170 assert_matches_type(GraderRunResponse, grader, path=["response"])
171
172 @parametrize
173 async def test_method_run_with_all_params(self, async_client: AsyncOpenAI) -> None:
174 grader = await async_client.fine_tuning.alpha.graders.run(
175 grader={
176 "input": "input",
177 "name": "name",
178 "operation": "eq",
179 "reference": "reference",
180 "type": "string_check",
181 },
182 model_sample="model_sample",
183 item={},
184 )
185 assert_matches_type(GraderRunResponse, grader, path=["response"])
186
187 @parametrize
188 async def test_raw_response_run(self, async_client: AsyncOpenAI) -> None:
189 response = await async_client.fine_tuning.alpha.graders.with_raw_response.run(
190 grader={
191 "input": "input",
192 "name": "name",
193 "operation": "eq",
194 "reference": "reference",
195 "type": "string_check",
196 },
197 model_sample="model_sample",
198 )
199
200 assert response.is_closed is True
201 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
202 grader = response.parse()
203 assert_matches_type(GraderRunResponse, grader, path=["response"])
204
205 @parametrize
206 async def test_streaming_response_run(self, async_client: AsyncOpenAI) -> None:
207 async with async_client.fine_tuning.alpha.graders.with_streaming_response.run(
208 grader={
209 "input": "input",
210 "name": "name",
211 "operation": "eq",
212 "reference": "reference",
213 "type": "string_check",
214 },
215 model_sample="model_sample",
216 ) as response:
217 assert not response.is_closed
218 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
219
220 grader = await response.parse()
221 assert_matches_type(GraderRunResponse, grader, path=["response"])
222
223 assert cast(Any, response.is_closed) is True
224
225 @parametrize
226 async def test_method_validate(self, async_client: AsyncOpenAI) -> None:
227 grader = await async_client.fine_tuning.alpha.graders.validate(
228 grader={
229 "input": "input",
230 "name": "name",
231 "operation": "eq",
232 "reference": "reference",
233 "type": "string_check",
234 },
235 )
236 assert_matches_type(GraderValidateResponse, grader, path=["response"])
237
238 @parametrize
239 async def test_method_validate_with_all_params(self, async_client: AsyncOpenAI) -> None:
240 grader = await async_client.fine_tuning.alpha.graders.validate(
241 grader={
242 "input": "input",
243 "name": "name",
244 "operation": "eq",
245 "reference": "reference",
246 "type": "string_check",
247 },
248 )
249 assert_matches_type(GraderValidateResponse, grader, path=["response"])
250
251 @parametrize
252 async def test_raw_response_validate(self, async_client: AsyncOpenAI) -> None:
253 response = await async_client.fine_tuning.alpha.graders.with_raw_response.validate(
254 grader={
255 "input": "input",
256 "name": "name",
257 "operation": "eq",
258 "reference": "reference",
259 "type": "string_check",
260 },
261 )
262
263 assert response.is_closed is True
264 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
265 grader = response.parse()
266 assert_matches_type(GraderValidateResponse, grader, path=["response"])
267
268 @parametrize
269 async def test_streaming_response_validate(self, async_client: AsyncOpenAI) -> None:
270 async with async_client.fine_tuning.alpha.graders.with_streaming_response.validate(
271 grader={
272 "input": "input",
273 "name": "name",
274 "operation": "eq",
275 "reference": "reference",
276 "type": "string_check",
277 },
278 ) as response:
279 assert not response.is_closed
280 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
281
282 grader = await response.parse()
283 assert_matches_type(GraderValidateResponse, grader, path=["response"])
284
285 assert cast(Any, response.is_closed) is True