openai/openai-python

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v1.2.4

Branches

Tags

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

Clone

HTTPS

Download ZIP

tests/api_resources/test_completions.py

189lines · modeblame

08b8179aDavid Schnurr2 years ago1# File generated from our OpenAPI spec by Stainless.
2
3from __future__ import annotations
4
5import os
6
7import pytest
8
9from openai import OpenAI, AsyncOpenAI
10from tests.utils import assert_matches_type
11from openai.types import Completion
12from openai._client import OpenAI, AsyncOpenAI
13
14base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
15api_key = "My API Key"
16
17
18class TestCompletions:
19strict_client = OpenAI(base_url=base_url, api_key=api_key, _strict_response_validation=True)
20loose_client = OpenAI(base_url=base_url, api_key=api_key, _strict_response_validation=False)
21parametrize = pytest.mark.parametrize("client", [strict_client, loose_client], ids=["strict", "loose"])
22
23@parametrize
24def test_method_create_overload_1(self, client: OpenAI) -> None:
25completion = client.completions.create(
26model="string",
27prompt="This is a test.",
28)
29assert_matches_type(Completion, completion, path=["response"])
30
31@parametrize
32def test_method_create_with_all_params_overload_1(self, client: OpenAI) -> None:
33completion = client.completions.create(
34model="string",
35prompt="This is a test.",
36best_of=0,
37echo=True,
38frequency_penalty=-2,
39logit_bias={"foo": 0},
40logprobs=0,
41max_tokens=16,
42n=1,
43presence_penalty=-2,
baa9f07fRobert Craigie2 years ago44seed=-9223372036854776000,
08b8179aDavid Schnurr2 years ago45stop="\n",
46stream=False,
47suffix="test.",
48temperature=1,
49top_p=1,
50user="user-1234",
51)
52assert_matches_type(Completion, completion, path=["response"])
53
54@parametrize
55def test_raw_response_create_overload_1(self, client: OpenAI) -> None:
56response = client.completions.with_raw_response.create(
57model="string",
58prompt="This is a test.",
59)
60assert response.http_request.headers.get("X-Stainless-Lang") == "python"
61completion = response.parse()
62assert_matches_type(Completion, completion, path=["response"])
63
64@parametrize
65def test_method_create_overload_2(self, client: OpenAI) -> None:
66client.completions.create(
67model="string",
68prompt="This is a test.",
69stream=True,
70)
71
72@parametrize
73def test_method_create_with_all_params_overload_2(self, client: OpenAI) -> None:
74client.completions.create(
75model="string",
76prompt="This is a test.",
77stream=True,
78best_of=0,
79echo=True,
80frequency_penalty=-2,
81logit_bias={"foo": 0},
82logprobs=0,
83max_tokens=16,
84n=1,
85presence_penalty=-2,
baa9f07fRobert Craigie2 years ago86seed=-9223372036854776000,
08b8179aDavid Schnurr2 years ago87stop="\n",
88suffix="test.",
89temperature=1,
90top_p=1,
91user="user-1234",
92)
93
94@parametrize
95def test_raw_response_create_overload_2(self, client: OpenAI) -> None:
96response = client.completions.with_raw_response.create(
97model="string",
98prompt="This is a test.",
99stream=True,
100)
101assert response.http_request.headers.get("X-Stainless-Lang") == "python"
102response.parse()
103
104
105class TestAsyncCompletions:
106strict_client = AsyncOpenAI(base_url=base_url, api_key=api_key, _strict_response_validation=True)
107loose_client = AsyncOpenAI(base_url=base_url, api_key=api_key, _strict_response_validation=False)
108parametrize = pytest.mark.parametrize("client", [strict_client, loose_client], ids=["strict", "loose"])
109
110@parametrize
111async def test_method_create_overload_1(self, client: AsyncOpenAI) -> None:
112completion = await client.completions.create(
113model="string",
114prompt="This is a test.",
115)
116assert_matches_type(Completion, completion, path=["response"])
117
118@parametrize
119async def test_method_create_with_all_params_overload_1(self, client: AsyncOpenAI) -> None:
120completion = await client.completions.create(
121model="string",
122prompt="This is a test.",
123best_of=0,
124echo=True,
125frequency_penalty=-2,
126logit_bias={"foo": 0},
127logprobs=0,
128max_tokens=16,
129n=1,
130presence_penalty=-2,
baa9f07fRobert Craigie2 years ago131seed=-9223372036854776000,
08b8179aDavid Schnurr2 years ago132stop="\n",
133stream=False,
134suffix="test.",
135temperature=1,
136top_p=1,
137user="user-1234",
138)
139assert_matches_type(Completion, completion, path=["response"])
140
141@parametrize
142async def test_raw_response_create_overload_1(self, client: AsyncOpenAI) -> None:
143response = await client.completions.with_raw_response.create(
144model="string",
145prompt="This is a test.",
146)
147assert response.http_request.headers.get("X-Stainless-Lang") == "python"
148completion = response.parse()
149assert_matches_type(Completion, completion, path=["response"])
150
151@parametrize
152async def test_method_create_overload_2(self, client: AsyncOpenAI) -> None:
153await client.completions.create(
154model="string",
155prompt="This is a test.",
156stream=True,
157)
158
159@parametrize
160async def test_method_create_with_all_params_overload_2(self, client: AsyncOpenAI) -> None:
161await client.completions.create(
162model="string",
163prompt="This is a test.",
164stream=True,
165best_of=0,
166echo=True,
167frequency_penalty=-2,
168logit_bias={"foo": 0},
169logprobs=0,
170max_tokens=16,
171n=1,
172presence_penalty=-2,
baa9f07fRobert Craigie2 years ago173seed=-9223372036854776000,
08b8179aDavid Schnurr2 years ago174stop="\n",
175suffix="test.",
176temperature=1,
177top_p=1,
178user="user-1234",
179)
180
181@parametrize
182async def test_raw_response_create_overload_2(self, client: AsyncOpenAI) -> None:
183response = await client.completions.with_raw_response.create(
184model="string",
185prompt="This is a test.",
186stream=True,
187)
188assert response.http_request.headers.get("X-Stainless-Lang") == "python"
189response.parse()