Skip to content

Commit 6a2a289

Browse files
authored
fix: allow non s prefixed models to fail websocket integration tests (#71)
* fix: allow non s prefixed models to fail websocket integration tests * style: fix formatting
1 parent 11ed28b commit 6a2a289

File tree

1 file changed

+49
-37
lines changed

1 file changed

+49
-37
lines changed

tests/integration/test_tts_websocket_integration.py

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,31 @@ def text_stream():
3535
save_audio(audio_chunks, "test_websocket_streaming.mp3")
3636

3737
@pytest.mark.flaky(reruns=9, reruns_delay=1)
38-
def test_websocket_streaming_with_different_models(self, client, save_audio):
39-
"""Test WebSocket streaming with different models."""
40-
import time
38+
@pytest.mark.parametrize(
39+
"model",
40+
[
41+
pytest.param(
42+
m,
43+
marks=pytest.mark.xfail(
44+
reason="WebSocket unreliable for legacy models"
45+
),
46+
)
47+
if not m.startswith("s1")
48+
else m
49+
for m in get_args(Model)
50+
],
51+
)
52+
def test_websocket_streaming_with_model(self, client, save_audio, model):
53+
"""Test WebSocket streaming with a specific model."""
4154

42-
models = get_args(Model)
43-
44-
for model in models:
45-
46-
def text_stream():
47-
yield f"Testing model {model} via WebSocket."
48-
49-
audio_chunks = list(client.tts.stream_websocket(text_stream(), model=model))
50-
assert len(audio_chunks) > 0, f"Failed for model: {model}"
55+
def text_stream():
56+
yield f"Testing model {model} via WebSocket."
5157

52-
# Write to output directory
53-
save_audio(audio_chunks, f"test_websocket_model_{model}.mp3")
58+
audio_chunks = list(client.tts.stream_websocket(text_stream(), model=model))
59+
assert len(audio_chunks) > 0, f"Failed for model: {model}"
5460

55-
# Brief delay to avoid SSL errors when opening next WebSocket connection
56-
time.sleep(1.0)
61+
# Write to output directory
62+
save_audio(audio_chunks, f"test_websocket_model_{model}.mp3")
5763

5864
def test_websocket_streaming_with_wav_format(self, client, save_audio):
5965
"""Test WebSocket streaming with WAV format."""
@@ -221,32 +227,38 @@ async def text_stream():
221227

222228
@pytest.mark.asyncio
223229
@pytest.mark.flaky(reruns=9, reruns_delay=1)
224-
async def test_async_websocket_streaming_with_different_models(
225-
self, async_client, save_audio
230+
@pytest.mark.parametrize(
231+
"model",
232+
[
233+
pytest.param(
234+
m,
235+
marks=pytest.mark.xfail(
236+
reason="WebSocket unreliable for legacy models"
237+
),
238+
)
239+
if not m.startswith("s1")
240+
else m
241+
for m in get_args(Model)
242+
],
243+
)
244+
async def test_async_websocket_streaming_with_model(
245+
self, async_client, save_audio, model
226246
):
227-
"""Test async WebSocket streaming with different models."""
228-
import asyncio
229-
230-
models = get_args(Model)
247+
"""Test async WebSocket streaming with a specific model."""
231248

232-
for model in models:
233-
234-
async def text_stream():
235-
yield f"Testing model {model} via async WebSocket."
236-
237-
audio_chunks = []
238-
async for chunk in async_client.tts.stream_websocket(
239-
text_stream(), model=model
240-
):
241-
audio_chunks.append(chunk)
249+
async def text_stream():
250+
yield f"Testing model {model} via async WebSocket."
242251

243-
assert len(audio_chunks) > 0, f"Failed for model: {model}"
252+
audio_chunks = []
253+
async for chunk in async_client.tts.stream_websocket(
254+
text_stream(), model=model
255+
):
256+
audio_chunks.append(chunk)
244257

245-
# Write to output directory
246-
save_audio(audio_chunks, f"test_async_websocket_model_{model}.mp3")
258+
assert len(audio_chunks) > 0, f"Failed for model: {model}"
247259

248-
# Brief delay to avoid SSL errors when opening next WebSocket connection
249-
await asyncio.sleep(1.0)
260+
# Write to output directory
261+
save_audio(audio_chunks, f"test_async_websocket_model_{model}.mp3")
250262

251263
@pytest.mark.asyncio
252264
async def test_async_websocket_streaming_with_format(

0 commit comments

Comments
 (0)