openai/openai-python

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
43890e1c8be590ee508124bb4efec0074596dff3

Branches

Tags

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

Clone

HTTPS

Download ZIP

tests/api_resources/chat/test_completions.py

840lines · 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.chat import (
14 ChatCompletion,
15 ChatCompletionDeleted,
16)
17
18base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
19
20
21class TestCompletions:
22 parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
23
24 @parametrize
25 def test_method_create_overload_1(self, client: OpenAI) -> None:
26 completion = client.chat.completions.create(
27 messages=[
28 {
29 "content": "string",
30 "role": "developer",
31 }
32 ],
33 model="gpt-4o",
34 )
35 assert_matches_type(ChatCompletion, completion, path=["response"])
36
37 @parametrize
38 def test_method_create_with_all_params_overload_1(self, client: OpenAI) -> None:
39 completion = client.chat.completions.create(
40 messages=[
41 {
42 "content": "string",
43 "role": "developer",
44 "name": "name",
45 }
46 ],
47 model="gpt-4o",
48 audio={
49 "format": "wav",
50 "voice": "ash",
51 },
52 frequency_penalty=-2,
53 function_call="none",
54 functions=[
55 {
56 "name": "name",
57 "description": "description",
58 "parameters": {"foo": "bar"},
59 }
60 ],
61 logit_bias={"foo": 0},
62 logprobs=True,
63 max_completion_tokens=0,
64 max_tokens=0,
65 metadata={"foo": "string"},
66 modalities=["text"],
67 n=1,
68 parallel_tool_calls=True,
69 prediction={
70 "content": "string",
71 "type": "content",
72 },
73 presence_penalty=-2,
74 reasoning_effort="low",
75 response_format={"type": "text"},
76 seed=-9007199254740991,
77 service_tier="auto",
78 stop="\n",
79 store=True,
80 stream=False,
81 stream_options={"include_usage": True},
82 temperature=1,
83 tool_choice="none",
84 tools=[
85 {
86 "function": {
87 "name": "name",
88 "description": "description",
89 "parameters": {"foo": "bar"},
90 "strict": True,
91 },
92 "type": "function",
93 }
94 ],
95 top_logprobs=0,
96 top_p=1,
97 user="user-1234",
98 web_search_options={
99 "search_context_size": "low",
100 "user_location": {
101 "approximate": {
102 "city": "city",
103 "country": "country",
104 "region": "region",
105 "timezone": "timezone",
106 },
107 "type": "approximate",
108 },
109 },
110 )
111 assert_matches_type(ChatCompletion, completion, path=["response"])
112
113 @parametrize
114 def test_raw_response_create_overload_1(self, client: OpenAI) -> None:
115 response = client.chat.completions.with_raw_response.create(
116 messages=[
117 {
118 "content": "string",
119 "role": "developer",
120 }
121 ],
122 model="gpt-4o",
123 )
124
125 assert response.is_closed is True
126 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
127 completion = response.parse()
128 assert_matches_type(ChatCompletion, completion, path=["response"])
129
130 @parametrize
131 def test_streaming_response_create_overload_1(self, client: OpenAI) -> None:
132 with client.chat.completions.with_streaming_response.create(
133 messages=[
134 {
135 "content": "string",
136 "role": "developer",
137 }
138 ],
139 model="gpt-4o",
140 ) as response:
141 assert not response.is_closed
142 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
143
144 completion = response.parse()
145 assert_matches_type(ChatCompletion, completion, path=["response"])
146
147 assert cast(Any, response.is_closed) is True
148
149 @parametrize
150 def test_method_create_overload_2(self, client: OpenAI) -> None:
151 completion_stream = client.chat.completions.create(
152 messages=[
153 {
154 "content": "string",
155 "role": "developer",
156 }
157 ],
158 model="gpt-4o",
159 stream=True,
160 )
161 completion_stream.response.close()
162
163 @parametrize
164 def test_method_create_with_all_params_overload_2(self, client: OpenAI) -> None:
165 completion_stream = client.chat.completions.create(
166 messages=[
167 {
168 "content": "string",
169 "role": "developer",
170 "name": "name",
171 }
172 ],
173 model="gpt-4o",
174 stream=True,
175 audio={
176 "format": "wav",
177 "voice": "ash",
178 },
179 frequency_penalty=-2,
180 function_call="none",
181 functions=[
182 {
183 "name": "name",
184 "description": "description",
185 "parameters": {"foo": "bar"},
186 }
187 ],
188 logit_bias={"foo": 0},
189 logprobs=True,
190 max_completion_tokens=0,
191 max_tokens=0,
192 metadata={"foo": "string"},
193 modalities=["text"],
194 n=1,
195 parallel_tool_calls=True,
196 prediction={
197 "content": "string",
198 "type": "content",
199 },
200 presence_penalty=-2,
201 reasoning_effort="low",
202 response_format={"type": "text"},
203 seed=-9007199254740991,
204 service_tier="auto",
205 stop="\n",
206 store=True,
207 stream_options={"include_usage": True},
208 temperature=1,
209 tool_choice="none",
210 tools=[
211 {
212 "function": {
213 "name": "name",
214 "description": "description",
215 "parameters": {"foo": "bar"},
216 "strict": True,
217 },
218 "type": "function",
219 }
220 ],
221 top_logprobs=0,
222 top_p=1,
223 user="user-1234",
224 web_search_options={
225 "search_context_size": "low",
226 "user_location": {
227 "approximate": {
228 "city": "city",
229 "country": "country",
230 "region": "region",
231 "timezone": "timezone",
232 },
233 "type": "approximate",
234 },
235 },
236 )
237 completion_stream.response.close()
238
239 @parametrize
240 def test_raw_response_create_overload_2(self, client: OpenAI) -> None:
241 response = client.chat.completions.with_raw_response.create(
242 messages=[
243 {
244 "content": "string",
245 "role": "developer",
246 }
247 ],
248 model="gpt-4o",
249 stream=True,
250 )
251
252 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
253 stream = response.parse()
254 stream.close()
255
256 @parametrize
257 def test_streaming_response_create_overload_2(self, client: OpenAI) -> None:
258 with client.chat.completions.with_streaming_response.create(
259 messages=[
260 {
261 "content": "string",
262 "role": "developer",
263 }
264 ],
265 model="gpt-4o",
266 stream=True,
267 ) as response:
268 assert not response.is_closed
269 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
270
271 stream = response.parse()
272 stream.close()
273
274 assert cast(Any, response.is_closed) is True
275
276 @parametrize
277 def test_method_retrieve(self, client: OpenAI) -> None:
278 completion = client.chat.completions.retrieve(
279 "completion_id",
280 )
281 assert_matches_type(ChatCompletion, completion, path=["response"])
282
283 @parametrize
284 def test_raw_response_retrieve(self, client: OpenAI) -> None:
285 response = client.chat.completions.with_raw_response.retrieve(
286 "completion_id",
287 )
288
289 assert response.is_closed is True
290 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
291 completion = response.parse()
292 assert_matches_type(ChatCompletion, completion, path=["response"])
293
294 @parametrize
295 def test_streaming_response_retrieve(self, client: OpenAI) -> None:
296 with client.chat.completions.with_streaming_response.retrieve(
297 "completion_id",
298 ) as response:
299 assert not response.is_closed
300 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
301
302 completion = response.parse()
303 assert_matches_type(ChatCompletion, completion, path=["response"])
304
305 assert cast(Any, response.is_closed) is True
306
307 @parametrize
308 def test_path_params_retrieve(self, client: OpenAI) -> None:
309 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
310 client.chat.completions.with_raw_response.retrieve(
311 "",
312 )
313
314 @parametrize
315 def test_method_update(self, client: OpenAI) -> None:
316 completion = client.chat.completions.update(
317 completion_id="completion_id",
318 metadata={"foo": "string"},
319 )
320 assert_matches_type(ChatCompletion, completion, path=["response"])
321
322 @parametrize
323 def test_raw_response_update(self, client: OpenAI) -> None:
324 response = client.chat.completions.with_raw_response.update(
325 completion_id="completion_id",
326 metadata={"foo": "string"},
327 )
328
329 assert response.is_closed is True
330 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
331 completion = response.parse()
332 assert_matches_type(ChatCompletion, completion, path=["response"])
333
334 @parametrize
335 def test_streaming_response_update(self, client: OpenAI) -> None:
336 with client.chat.completions.with_streaming_response.update(
337 completion_id="completion_id",
338 metadata={"foo": "string"},
339 ) as response:
340 assert not response.is_closed
341 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
342
343 completion = response.parse()
344 assert_matches_type(ChatCompletion, completion, path=["response"])
345
346 assert cast(Any, response.is_closed) is True
347
348 @parametrize
349 def test_path_params_update(self, client: OpenAI) -> None:
350 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
351 client.chat.completions.with_raw_response.update(
352 completion_id="",
353 metadata={"foo": "string"},
354 )
355
356 @parametrize
357 def test_method_list(self, client: OpenAI) -> None:
358 completion = client.chat.completions.list()
359 assert_matches_type(SyncCursorPage[ChatCompletion], completion, path=["response"])
360
361 @parametrize
362 def test_method_list_with_all_params(self, client: OpenAI) -> None:
363 completion = client.chat.completions.list(
364 after="after",
365 limit=0,
366 metadata={"foo": "string"},
367 model="model",
368 order="asc",
369 )
370 assert_matches_type(SyncCursorPage[ChatCompletion], completion, path=["response"])
371
372 @parametrize
373 def test_raw_response_list(self, client: OpenAI) -> None:
374 response = client.chat.completions.with_raw_response.list()
375
376 assert response.is_closed is True
377 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
378 completion = response.parse()
379 assert_matches_type(SyncCursorPage[ChatCompletion], completion, path=["response"])
380
381 @parametrize
382 def test_streaming_response_list(self, client: OpenAI) -> None:
383 with client.chat.completions.with_streaming_response.list() as response:
384 assert not response.is_closed
385 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
386
387 completion = response.parse()
388 assert_matches_type(SyncCursorPage[ChatCompletion], completion, path=["response"])
389
390 assert cast(Any, response.is_closed) is True
391
392 @parametrize
393 def test_method_delete(self, client: OpenAI) -> None:
394 completion = client.chat.completions.delete(
395 "completion_id",
396 )
397 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
398
399 @parametrize
400 def test_raw_response_delete(self, client: OpenAI) -> None:
401 response = client.chat.completions.with_raw_response.delete(
402 "completion_id",
403 )
404
405 assert response.is_closed is True
406 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
407 completion = response.parse()
408 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
409
410 @parametrize
411 def test_streaming_response_delete(self, client: OpenAI) -> None:
412 with client.chat.completions.with_streaming_response.delete(
413 "completion_id",
414 ) as response:
415 assert not response.is_closed
416 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
417
418 completion = response.parse()
419 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
420
421 assert cast(Any, response.is_closed) is True
422
423 @parametrize
424 def test_path_params_delete(self, client: OpenAI) -> None:
425 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
426 client.chat.completions.with_raw_response.delete(
427 "",
428 )
429
430
431class TestAsyncCompletions:
432 parametrize = pytest.mark.parametrize(
433 "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
434 )
435
436 @parametrize
437 async def test_method_create_overload_1(self, async_client: AsyncOpenAI) -> None:
438 completion = await async_client.chat.completions.create(
439 messages=[
440 {
441 "content": "string",
442 "role": "developer",
443 }
444 ],
445 model="gpt-4o",
446 )
447 assert_matches_type(ChatCompletion, completion, path=["response"])
448
449 @parametrize
450 async def test_method_create_with_all_params_overload_1(self, async_client: AsyncOpenAI) -> None:
451 completion = await async_client.chat.completions.create(
452 messages=[
453 {
454 "content": "string",
455 "role": "developer",
456 "name": "name",
457 }
458 ],
459 model="gpt-4o",
460 audio={
461 "format": "wav",
462 "voice": "ash",
463 },
464 frequency_penalty=-2,
465 function_call="none",
466 functions=[
467 {
468 "name": "name",
469 "description": "description",
470 "parameters": {"foo": "bar"},
471 }
472 ],
473 logit_bias={"foo": 0},
474 logprobs=True,
475 max_completion_tokens=0,
476 max_tokens=0,
477 metadata={"foo": "string"},
478 modalities=["text"],
479 n=1,
480 parallel_tool_calls=True,
481 prediction={
482 "content": "string",
483 "type": "content",
484 },
485 presence_penalty=-2,
486 reasoning_effort="low",
487 response_format={"type": "text"},
488 seed=-9007199254740991,
489 service_tier="auto",
490 stop="\n",
491 store=True,
492 stream=False,
493 stream_options={"include_usage": True},
494 temperature=1,
495 tool_choice="none",
496 tools=[
497 {
498 "function": {
499 "name": "name",
500 "description": "description",
501 "parameters": {"foo": "bar"},
502 "strict": True,
503 },
504 "type": "function",
505 }
506 ],
507 top_logprobs=0,
508 top_p=1,
509 user="user-1234",
510 web_search_options={
511 "search_context_size": "low",
512 "user_location": {
513 "approximate": {
514 "city": "city",
515 "country": "country",
516 "region": "region",
517 "timezone": "timezone",
518 },
519 "type": "approximate",
520 },
521 },
522 )
523 assert_matches_type(ChatCompletion, completion, path=["response"])
524
525 @parametrize
526 async def test_raw_response_create_overload_1(self, async_client: AsyncOpenAI) -> None:
527 response = await async_client.chat.completions.with_raw_response.create(
528 messages=[
529 {
530 "content": "string",
531 "role": "developer",
532 }
533 ],
534 model="gpt-4o",
535 )
536
537 assert response.is_closed is True
538 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
539 completion = response.parse()
540 assert_matches_type(ChatCompletion, completion, path=["response"])
541
542 @parametrize
543 async def test_streaming_response_create_overload_1(self, async_client: AsyncOpenAI) -> None:
544 async with async_client.chat.completions.with_streaming_response.create(
545 messages=[
546 {
547 "content": "string",
548 "role": "developer",
549 }
550 ],
551 model="gpt-4o",
552 ) as response:
553 assert not response.is_closed
554 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
555
556 completion = await response.parse()
557 assert_matches_type(ChatCompletion, completion, path=["response"])
558
559 assert cast(Any, response.is_closed) is True
560
561 @parametrize
562 async def test_method_create_overload_2(self, async_client: AsyncOpenAI) -> None:
563 completion_stream = await async_client.chat.completions.create(
564 messages=[
565 {
566 "content": "string",
567 "role": "developer",
568 }
569 ],
570 model="gpt-4o",
571 stream=True,
572 )
573 await completion_stream.response.aclose()
574
575 @parametrize
576 async def test_method_create_with_all_params_overload_2(self, async_client: AsyncOpenAI) -> None:
577 completion_stream = await async_client.chat.completions.create(
578 messages=[
579 {
580 "content": "string",
581 "role": "developer",
582 "name": "name",
583 }
584 ],
585 model="gpt-4o",
586 stream=True,
587 audio={
588 "format": "wav",
589 "voice": "ash",
590 },
591 frequency_penalty=-2,
592 function_call="none",
593 functions=[
594 {
595 "name": "name",
596 "description": "description",
597 "parameters": {"foo": "bar"},
598 }
599 ],
600 logit_bias={"foo": 0},
601 logprobs=True,
602 max_completion_tokens=0,
603 max_tokens=0,
604 metadata={"foo": "string"},
605 modalities=["text"],
606 n=1,
607 parallel_tool_calls=True,
608 prediction={
609 "content": "string",
610 "type": "content",
611 },
612 presence_penalty=-2,
613 reasoning_effort="low",
614 response_format={"type": "text"},
615 seed=-9007199254740991,
616 service_tier="auto",
617 stop="\n",
618 store=True,
619 stream_options={"include_usage": True},
620 temperature=1,
621 tool_choice="none",
622 tools=[
623 {
624 "function": {
625 "name": "name",
626 "description": "description",
627 "parameters": {"foo": "bar"},
628 "strict": True,
629 },
630 "type": "function",
631 }
632 ],
633 top_logprobs=0,
634 top_p=1,
635 user="user-1234",
636 web_search_options={
637 "search_context_size": "low",
638 "user_location": {
639 "approximate": {
640 "city": "city",
641 "country": "country",
642 "region": "region",
643 "timezone": "timezone",
644 },
645 "type": "approximate",
646 },
647 },
648 )
649 await completion_stream.response.aclose()
650
651 @parametrize
652 async def test_raw_response_create_overload_2(self, async_client: AsyncOpenAI) -> None:
653 response = await async_client.chat.completions.with_raw_response.create(
654 messages=[
655 {
656 "content": "string",
657 "role": "developer",
658 }
659 ],
660 model="gpt-4o",
661 stream=True,
662 )
663
664 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
665 stream = response.parse()
666 await stream.close()
667
668 @parametrize
669 async def test_streaming_response_create_overload_2(self, async_client: AsyncOpenAI) -> None:
670 async with async_client.chat.completions.with_streaming_response.create(
671 messages=[
672 {
673 "content": "string",
674 "role": "developer",
675 }
676 ],
677 model="gpt-4o",
678 stream=True,
679 ) as response:
680 assert not response.is_closed
681 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
682
683 stream = await response.parse()
684 await stream.close()
685
686 assert cast(Any, response.is_closed) is True
687
688 @parametrize
689 async def test_method_retrieve(self, async_client: AsyncOpenAI) -> None:
690 completion = await async_client.chat.completions.retrieve(
691 "completion_id",
692 )
693 assert_matches_type(ChatCompletion, completion, path=["response"])
694
695 @parametrize
696 async def test_raw_response_retrieve(self, async_client: AsyncOpenAI) -> None:
697 response = await async_client.chat.completions.with_raw_response.retrieve(
698 "completion_id",
699 )
700
701 assert response.is_closed is True
702 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
703 completion = response.parse()
704 assert_matches_type(ChatCompletion, completion, path=["response"])
705
706 @parametrize
707 async def test_streaming_response_retrieve(self, async_client: AsyncOpenAI) -> None:
708 async with async_client.chat.completions.with_streaming_response.retrieve(
709 "completion_id",
710 ) as response:
711 assert not response.is_closed
712 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
713
714 completion = await response.parse()
715 assert_matches_type(ChatCompletion, completion, path=["response"])
716
717 assert cast(Any, response.is_closed) is True
718
719 @parametrize
720 async def test_path_params_retrieve(self, async_client: AsyncOpenAI) -> None:
721 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
722 await async_client.chat.completions.with_raw_response.retrieve(
723 "",
724 )
725
726 @parametrize
727 async def test_method_update(self, async_client: AsyncOpenAI) -> None:
728 completion = await async_client.chat.completions.update(
729 completion_id="completion_id",
730 metadata={"foo": "string"},
731 )
732 assert_matches_type(ChatCompletion, completion, path=["response"])
733
734 @parametrize
735 async def test_raw_response_update(self, async_client: AsyncOpenAI) -> None:
736 response = await async_client.chat.completions.with_raw_response.update(
737 completion_id="completion_id",
738 metadata={"foo": "string"},
739 )
740
741 assert response.is_closed is True
742 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
743 completion = response.parse()
744 assert_matches_type(ChatCompletion, completion, path=["response"])
745
746 @parametrize
747 async def test_streaming_response_update(self, async_client: AsyncOpenAI) -> None:
748 async with async_client.chat.completions.with_streaming_response.update(
749 completion_id="completion_id",
750 metadata={"foo": "string"},
751 ) as response:
752 assert not response.is_closed
753 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
754
755 completion = await response.parse()
756 assert_matches_type(ChatCompletion, completion, path=["response"])
757
758 assert cast(Any, response.is_closed) is True
759
760 @parametrize
761 async def test_path_params_update(self, async_client: AsyncOpenAI) -> None:
762 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
763 await async_client.chat.completions.with_raw_response.update(
764 completion_id="",
765 metadata={"foo": "string"},
766 )
767
768 @parametrize
769 async def test_method_list(self, async_client: AsyncOpenAI) -> None:
770 completion = await async_client.chat.completions.list()
771 assert_matches_type(AsyncCursorPage[ChatCompletion], completion, path=["response"])
772
773 @parametrize
774 async def test_method_list_with_all_params(self, async_client: AsyncOpenAI) -> None:
775 completion = await async_client.chat.completions.list(
776 after="after",
777 limit=0,
778 metadata={"foo": "string"},
779 model="model",
780 order="asc",
781 )
782 assert_matches_type(AsyncCursorPage[ChatCompletion], completion, path=["response"])
783
784 @parametrize
785 async def test_raw_response_list(self, async_client: AsyncOpenAI) -> None:
786 response = await async_client.chat.completions.with_raw_response.list()
787
788 assert response.is_closed is True
789 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
790 completion = response.parse()
791 assert_matches_type(AsyncCursorPage[ChatCompletion], completion, path=["response"])
792
793 @parametrize
794 async def test_streaming_response_list(self, async_client: AsyncOpenAI) -> None:
795 async with async_client.chat.completions.with_streaming_response.list() as response:
796 assert not response.is_closed
797 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
798
799 completion = await response.parse()
800 assert_matches_type(AsyncCursorPage[ChatCompletion], completion, path=["response"])
801
802 assert cast(Any, response.is_closed) is True
803
804 @parametrize
805 async def test_method_delete(self, async_client: AsyncOpenAI) -> None:
806 completion = await async_client.chat.completions.delete(
807 "completion_id",
808 )
809 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
810
811 @parametrize
812 async def test_raw_response_delete(self, async_client: AsyncOpenAI) -> None:
813 response = await async_client.chat.completions.with_raw_response.delete(
814 "completion_id",
815 )
816
817 assert response.is_closed is True
818 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
819 completion = response.parse()
820 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
821
822 @parametrize
823 async def test_streaming_response_delete(self, async_client: AsyncOpenAI) -> None:
824 async with async_client.chat.completions.with_streaming_response.delete(
825 "completion_id",
826 ) as response:
827 assert not response.is_closed
828 assert response.http_request.headers.get("X-Stainless-Lang") == "python"
829
830 completion = await response.parse()
831 assert_matches_type(ChatCompletionDeleted, completion, path=["response"])
832
833 assert cast(Any, response.is_closed) is True
834
835 @parametrize
836 async def test_path_params_delete(self, async_client: AsyncOpenAI) -> None:
837 with pytest.raises(ValueError, match=r"Expected a non-empty value for `completion_id` but received ''"):
838 await async_client.chat.completions.with_raw_response.delete(
839 "",
840 )
841