Skip to content

Commit b3483a6

Browse files
committed
fix: allow non s prefixed models to fail websocket integration tests
1 parent 11ed28b commit b3483a6

File tree

1 file changed

+43
-37
lines changed

1 file changed

+43
-37
lines changed

tests/integration/test_tts_websocket_integration.py

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,28 @@ 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, marks=pytest.mark.xfail(reason="WebSocket unreliable for legacy models")
43+
)
44+
if not m.startswith("s1")
45+
else m
46+
for m in get_args(Model)
47+
],
48+
)
49+
def test_websocket_streaming_with_model(self, client, save_audio, model):
50+
"""Test WebSocket streaming with a specific model."""
4151

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}"
52+
def text_stream():
53+
yield f"Testing model {model} via WebSocket."
5154

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

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

5861
def test_websocket_streaming_with_wav_format(self, client, save_audio):
5962
"""Test WebSocket streaming with WAV format."""
@@ -221,32 +224,35 @@ async def text_stream():
221224

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

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)
243+
async def text_stream():
244+
yield f"Testing model {model} via async WebSocket."
242245

243-
assert len(audio_chunks) > 0, f"Failed for model: {model}"
246+
audio_chunks = []
247+
async for chunk in async_client.tts.stream_websocket(
248+
text_stream(), model=model
249+
):
250+
audio_chunks.append(chunk)
244251

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

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

251257
@pytest.mark.asyncio
252258
async def test_async_websocket_streaming_with_format(

0 commit comments

Comments
 (0)