Skip to content

Commit 4a996af

Browse files
committed
More tests
1 parent bebbe8c commit 4a996af

File tree

2 files changed

+56
-5
lines changed

2 files changed

+56
-5
lines changed

sentry_sdk/integrations/openai.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -339,11 +339,7 @@ def _new_embeddings_create_common(f, *args, **kwargs):
339339
if "model" in kwargs:
340340
set_data_normalized(span, "ai.model_id", kwargs["model"])
341341

342-
try:
343-
response = yield f, args, kwargs
344-
except Exception as e:
345-
_capture_exception(e)
346-
raise e from None
342+
response = yield f, args, kwargs
347343

348344
prompt_tokens = 0
349345
total_tokens = 0

tests/integrations/openai/test_openai.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,61 @@ async def test_embeddings_create_async(
457457
assert span["measurements"]["ai_total_tokens_used"]["value"] == 30
458458

459459

460+
@pytest.mark.parametrize(
461+
"send_default_pii, include_prompts",
462+
[(True, True), (True, False), (False, True), (False, False)],
463+
)
464+
def test_embeddings_create_raises_error(
465+
sentry_init, capture_events, send_default_pii, include_prompts
466+
):
467+
sentry_init(
468+
integrations=[OpenAIIntegration(include_prompts=include_prompts)],
469+
traces_sample_rate=1.0,
470+
send_default_pii=send_default_pii,
471+
)
472+
events = capture_events()
473+
474+
client = OpenAI(api_key="z")
475+
476+
client.embeddings._post = mock.Mock(
477+
side_effect=OpenAIError("API rate limit reached")
478+
)
479+
480+
with pytest.raises(OpenAIError):
481+
client.embeddings.create(input="hello", model="text-embedding-3-large")
482+
483+
(event,) = events
484+
assert event["level"] == "error"
485+
486+
487+
@pytest.mark.asyncio
488+
@pytest.mark.parametrize(
489+
"send_default_pii, include_prompts",
490+
[(True, True), (True, False), (False, True), (False, False)],
491+
)
492+
async def test_embeddings_create_raises_error_async(
493+
sentry_init, capture_events, send_default_pii, include_prompts
494+
):
495+
sentry_init(
496+
integrations=[OpenAIIntegration(include_prompts=include_prompts)],
497+
traces_sample_rate=1.0,
498+
send_default_pii=send_default_pii,
499+
)
500+
events = capture_events()
501+
502+
client = AsyncOpenAI(api_key="z")
503+
504+
client.embeddings._post = AsyncMock(
505+
side_effect=OpenAIError("API rate limit reached")
506+
)
507+
508+
with pytest.raises(OpenAIError):
509+
await client.embeddings.create(input="hello", model="text-embedding-3-large")
510+
511+
(event,) = events
512+
assert event["level"] == "error"
513+
514+
460515
def test_span_origin_nonstreaming_chat(sentry_init, capture_events):
461516
sentry_init(
462517
integrations=[OpenAIIntegration()],

0 commit comments

Comments
 (0)