1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
import os
from typing import Any, cast
import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.types.beta.realtime import SessionCreateResponse
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
class TestSessions:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
@parametrize
def test_method_create(self, client: OpenAI) -> None:
session = client.beta.realtime.sessions.create()
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
def test_method_create_with_all_params(self, client: OpenAI) -> None:
session = client.beta.realtime.sessions.create(
client_secret={
"expires_after": {
"anchor": "created_at",
"seconds": 0,
}
},
input_audio_format="pcm16",
input_audio_noise_reduction={"type": "near_field"},
input_audio_transcription={
"language": "language",
"model": "model",
"prompt": "prompt",
},
instructions="instructions",
max_response_output_tokens=0,
modalities=["text"],
model="gpt-4o-realtime-preview",
output_audio_format="pcm16",
speed=0.25,
temperature=0,
tool_choice="tool_choice",
tools=[
{
"description": "description",
"name": "name",
"parameters": {},
"type": "function",
}
],
tracing="auto",
turn_detection={
"create_response": True,
"eagerness": "low",
"interrupt_response": True,
"prefix_padding_ms": 0,
"silence_duration_ms": 0,
"threshold": 0,
"type": "server_vad",
},
voice="ash",
)
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
def test_raw_response_create(self, client: OpenAI) -> None:
response = client.beta.realtime.sessions.with_raw_response.create()
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = response.parse()
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
def test_streaming_response_create(self, client: OpenAI) -> None:
with client.beta.realtime.sessions.with_streaming_response.create() as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = response.parse()
assert_matches_type(SessionCreateResponse, session, path=["response"])
assert cast(Any, response.is_closed) is True
class TestAsyncSessions:
parametrize = pytest.mark.parametrize(
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
@parametrize
async def test_method_create(self, async_client: AsyncOpenAI) -> None:
session = await async_client.beta.realtime.sessions.create()
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncOpenAI) -> None:
session = await async_client.beta.realtime.sessions.create(
client_secret={
"expires_after": {
"anchor": "created_at",
"seconds": 0,
}
},
input_audio_format="pcm16",
input_audio_noise_reduction={"type": "near_field"},
input_audio_transcription={
"language": "language",
"model": "model",
"prompt": "prompt",
},
instructions="instructions",
max_response_output_tokens=0,
modalities=["text"],
model="gpt-4o-realtime-preview",
output_audio_format="pcm16",
speed=0.25,
temperature=0,
tool_choice="tool_choice",
tools=[
{
"description": "description",
"name": "name",
"parameters": {},
"type": "function",
}
],
tracing="auto",
turn_detection={
"create_response": True,
"eagerness": "low",
"interrupt_response": True,
"prefix_padding_ms": 0,
"silence_duration_ms": 0,
"threshold": 0,
"type": "server_vad",
},
voice="ash",
)
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
async def test_raw_response_create(self, async_client: AsyncOpenAI) -> None:
response = await async_client.beta.realtime.sessions.with_raw_response.create()
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = response.parse()
assert_matches_type(SessionCreateResponse, session, path=["response"])
@parametrize
async def test_streaming_response_create(self, async_client: AsyncOpenAI) -> None:
async with async_client.beta.realtime.sessions.with_streaming_response.create() as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = await response.parse()
assert_matches_type(SessionCreateResponse, session, path=["response"])
assert cast(Any, response.is_closed) is True
|